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