制御構文 while ~ コマンドが成功している間実行
code
touch {1..3}.txt
# ファイルが存在しない場合 cat コマンドは失敗する
while cat ./*.txt; do
echo "while ~ do : files=$(find . -name '*.txt' | wc -l)"
# ファイルを 1 つ削除
rm "$(find . -name '*.txt' | head -n 1)"
done
stdout
stderr
code
i=0
# i < 3 の場合に test コマンドは成功する
while test $i -lt 3; do
echo "i=${i}"
i=$((i+1))
done
stdout
code
# ファイルが存在しない場合 cat コマンドは失敗する(! で反転)
while ! cat ./*.txt; do
echo "while ~ do : files=$(find . -name '*.txt' | wc -l)"
# ファイルを作成
touch a.txt
done
stdout
stderr
code
i=5
# i < 3 の場合に test コマンドは成功する(! で反転)
while ! test $i -lt 3; do
echo "i=${i}"
i=$((i-1))
done
stdout
制御構文 until ~ コマンドが失敗している間実行
code
# ファイルが存在しない場合 cat コマンドは失敗する
until cat ./*.txt; do
echo "until ~ do : files=$(find . -name '*.txt' | wc -l)"
# ファイルを作成
touch a.txt
done
stdout
stderr
code
i=5
# i < 3 の場合に test コマンドは成功する
until test $i -lt 3; do
echo "i=${i}"
i=$((i-1))
done
stdout
code
touch {1..3}.txt
# ファイルが存在しない場合 cat コマンドは失敗する(! で反転)
until ! cat ./*.txt; do
echo "until ~ do : files=$(find . -name '*.txt' | wc -l)"
# ファイルを 1 つ削除
rm "$(find . -name '*.txt' | head -n 1)"
done
stdout
stderr
code
i=0
# i < 3 の場合に test コマンドは成功する(! で反転)
until ! test $i -lt 3; do
echo "i=${i}"
i=$((i+1))
done
stdout