Bash
基本構文
forループ
# 指定の条件に合致する場合ループ
for [ i -lt 10 ]; do
~~~~~~
((++i))
done
# 初期値、ループ条件、ループ後処理を指定したループ
for ((i = 0; i < 10; i++)); do
~~~~~~
done
# 配列の要素だけループ
for item in ${array[@]}; do
echo ${item}
done
# 範囲指定(飛び値指定)
for item in 0 1 3 4 5; do
echo ${item}
done
# 範囲指定(連続値①)
for item in {0..9}; do
echo ${item}
done
# 範囲指定(連続値②)
for item in $(seq 0 9); do
echo ${item}
done
whileループ
# 指定の条件に合致する場合ループ
while [ i -lt 10 ]; do
~~~~~~
((++i))
done
# 無限ループ
while :
do
~~~~~~
done
# ファイル内容を入力としてループ
while read line; do
~~~~~~
done < "/tmp/xxx.lst"
# ヒアドキュメントを入力としてループ
while read line; do
~~~~~~
done << EOS
hoge
foo
bar
EOS
untilループ
# 指定の条件に合致しない場合ループ
until [ i -lt 10 ]; do
~~~~~~
((++i))
done
Tip
経過時間の算出方法
# 現在時刻(ミリ秒まで出力)
$ date +'%Y/%m/%d %H:%M:%S.%3N'
2022/08/12 18:06:32.689
# 経過時間算出
$ start=$(date +'%s.%3N')
~~~~~
$ end=$(date +'%s.%3N')
$ echo "scale=3; ${end} - ${start} | bc"
3.004