shell程式設計 - 迴圈語句
阿新 • • 發佈:2022-03-23
1. for in 語句
- 基本格式
for var in list
do
commands
done
- 程式碼示例
list="test1 test2 test3"
for value in $list
do
echo $value
done
- 設定列表的分隔符
# 儲存原始的分隔符設定
ifs=$IFS
# 設定風格符為換行符,逗號,以及冒號
IFS=$'\n',:
list="test1,test2,test3"
for value in $list
do
echo $value
done
# 恢復預設設定
IFS=$ifs
IFS預設將空格,製表符,換行符作為分隔符
- 從命令讀取值
cat ./test.txt
this is test1
this is test2
this is test3
file="./test.txt"
ifs=$IFS
IFS=$'\n'
for value in $(cat $file)
do
echo $value
done
IFS=$ifs
- 使用萬用字元讀取目錄
for file in ./*
do
if [ -f "$file" ]
then
echo "$file"
fi
done
2. for 語句
- 基本格式
for (( variable assignment; condition; iteration process ))
- 程式碼示例
for (( i=1; i <= 5; i++ ))
do
echo "$i"
done
3. while 語句
- 基本格式
while test command
do
other commands
done
- 程式碼示例
var1=5
while [ $var1 -gt 0 ]
do
echo $var1
var1=$[ $var1 - 1 ]
done
4. until 語句
- 基本格式
until test commands
do
other commands
done
until 的條件測試返回非0的時候才會執行迴圈體中命令,與while剛好相反
- 程式碼示例
var1=5
until [ $var1 -eq 0 ]
do
echo $var1
var1=$[ $var1 - 1]
done
5. break 語句
list="test1 test2 test3"
for value in $list
do
if [ "$value" = 'test2' ]
then
break
fi
echo $value
done
預設跳出當前迴圈, breadk 2 則跳出雙層迴圈的外層迴圈
6. continue 語句
list="test1 test2 test3"
for value in $list
do
if [ "$value" = 'test2' ]
then
continue
fi
echo $value
done
預設終止某次迴圈中的其他命令,continue 2則終止外層迴圈中的其他命令,但不終止迴圈