bashのTips(メモ)


カテゴリー: Tips | 投稿日: | 投稿者: -->

bashのTips
色々忘れるのでメモ。

■コマンド実行結果を格納する
例)pwdコマンド実行結果を格納する
result=`pwd`
result=$(pwd)

※``で囲む、もしくは、$()で囲む

■変数の中の文字列を置換する
例)文字列testをaaaaに置換する
result=${result//test/aaaa}

※${result//置換する文字列/置換後の文字列}

■文字列をマッチング処理する
例)変数resultに文字列testが先頭に含まれる場合文字列matchを表示する
if [[ "${result}" =~ ^test ]]
then
   echo "match"
fi

※=~を使う
※[[ ]]で囲む、[ ]だけではダメ

■ファイル・フォルダ処理
例)ファイルtest.txtが空でない場合文字列not emptyを表示する
if [ -s test.txt ]
then
    echo "not empty"
fi

※if [ ] の中で用いる
 -d ファイル名 	指定したファイルがディレクトリなら真
 -f ファイル名 	指定したファイルが通常ファイルなら真
 -e ファイル名 	指定したファイルが存在すれば真
 -s ファイル名 	指定したファイルのファイルサイズが0より大きければ真
 -n 文字列 	文字列の長さが0より大きければ真
 -z 文字列 	文字列の長さが0であれば真

■ステータス変数
$# 	与えられた引数の個数
$? 	最後に実行したコマンドの終了ステータス

■配列処理
例)配列testに文字列one,two,threeを格納し、中身をすべて表示する
test=(
    one
    two
    three
)
for ((i=0; i<${#test[*]}; i++))
do
    echo "${test[${i}]}"
done

※配列の値を全て出力するには添え字に@か*を使う
※${#test[*]}にすることで配列の数を表せる

■空欄を含む変数を処理する
例)各行にone,twoが書かれたファイルtest.txtから文字列oneを含まない行を抜き出す
echo "one" > test.txt
echo "two" >> test.txt
option=" -v one"
eval grep "${option}" test.txt

※オプションとして機能させるにはevalを使う

■シェルスクリプトをCGIとして利用する
例)
echo "Content-type: text/html"
echo
echo "<html><body><h1>test</h1></body></html>"

※Content-typeを最初に出力する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です