Bashスクリプト
概要
Bashスクリプト作成の時にいつも調べてしまうのでまとめておく。
環境
macOS Mojave 10.14.5
変数の扱い
a='aaa' echo ${a}
計算の仕方
two=$((3-1)) echo $(two)
if
文字列比較
=
で比較する
a='aaa' if [ ${a} = 'aaa' ]; then echo 'aaa' elif [ ${a} = 'bbb' ]; then echo 'bbb' else echo 'error' exit 0 fi
数値比較
-lt
、-gt
、-eq
で比較する
a=3 if [ ${a} -lt 3 ]; then echo '${a} is less than 3' elif [${a} -eq 3 ]; then echo '${a} is 3' elif [${a} -gt 3 ]; then echo '${a} is greater than 3' else echo 'else' fi
ファイルの存在確認
-e
はexistの略?
file='test.txt' if [ ! -e ${file} ]; then echo '${file} not found' exit 0 fi
for
bashにリストという概念がない。基本は以下のように指定する。
for a in 1 2 3 4 5; do for b in {01..06}; do echo ${a} ${b} done done
時間を取得
date %Y/%m/%d/%H:%M:%S
コマンドの出力を変数として取得
スクリプトを書くときはよく使う
time=`date +"%Y/%m/%d/%H:%M:%S"`
関数の定義
引数は${1}
、${2}
のようにコマンドライン引数と同様に扱う。
echo_dir() { dir=${1} echo ${dir} } echo_dir 'test.txt'