takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

bash の ; と && と || と応用 備忘録

;&&|| について備忘録を残す

; セミコロン

使い方 command1 ; command2
意味 command1 を実行後、その終了ステータスにかかわらず command2 を実行する
sample

$ true ; echo $?
0
$ false ; echo $?
1
$

&&

使い方 command1 && command2
意味 command1 が正常終了したら command2 を実行する
sample

$ true && echo $?
0
$ false && echo $?
$

|| (2重パイプ)

使い方 command1 || command2
意味 command1 が正常終了しなかったら command2 を実行する
sample

$ true || echo $?
$ false || echo $?
1
$

応用

ファイルが存在していれば削除する

_file="/path/to/file"
[ -f ${_file} ] && rm -v ${_file}

ディレクトリがなければ作る

_dir="/path/to/dir"
[ -d ${_dir} ] || mkdir -pv ${_dir}

当然ファイルがなければ作るという場合にも同じように使える

one line if

if true ; then echo "TRUE" ; else echo "FALSE" ; fi
TRUE
$ if false ; then echo "TRUE" ; else echo "FALSE" ; fi
FALSE
$

for

$ for i in $(seq 1 3) ; do echo $i ; done
1
2
3
$

ディレクトリを作成して正常終了したら移動する

mkdir -v "/path/to/dir" && cd $_