Shell——流程控制(if、case、for、while)
文章目錄
- 一、if語句
- 1.基本語法
- 2.注意事項
- 3.示例演示
- 三、case語句
- 1.基本語法
- 2.注意事項
- 3.示例演示
- 二、for循環
- 1.基本語法
- 2.示例演示
- 四、while循環
- 1.基本語法
- 2.示例演示
一、if語句
1.基本語法
語法①:
if [ condition ];then
程序
fi
語法②:
if [ 條件判斷式 ]
then
程序
fi
2.注意事項
(1)[ condition ],中括號和條件判斷式之間必須有空格
(2)if后要有空格
3.示例演示
#!/bin/bashif [ $1 -lt "5" ] thenecho "第一個參數小于5" elif [ $1 -eq "5" ] thenecho "第一個參數等于5" elseecho "第一個參數大于5" fiif [ $2 -lt "10" ];thenecho "第二個參數小于10" elif [ $2 -eq "10" ];thenecho "第二個參數等于10" elseecho "第二個參數大于10" fi運行結果:
三、case語句
1.基本語法
case $變量名 in
“值1”)
如果變量的值等于值1,則執行程序1
;;
“值2”)
如果變量的值等于值2,則執行程序2
;;
…省略其他分支…
*)
如果變量的值都不是以上的值,則執行此程序
;;
esac
2.注意事項
(1) case行尾必須為單詞“in”,每一個模式匹配必須以右括號“)”結束。
(2) 雙分號“;;”表示命令序列結束,相當于C語言中的break。
(3) 最后的“*)”表示默認模式,相當于C語言中的default。
3.示例演示
#!/bin/bashcase $1 in1)echo "參數是1";;2)echo "參數是2";;3)echo "參數是3";;*)echo "參數不是1、2、3";; esac運行結果:
二、for循環
1.基本語法
語法①:
for (( 初始值;循環控制條件;變量變化 ))
do
程序
done
語法②:
for 變量 in 值1 值2 值3…
do
程序
done
2.示例演示
程序1:
#!/bin/bashsum1=0 sum2=0for ((i = 1; i <= 10; i++)) dosum1=$[$i+$sum1] done echo "for1 sum1 is $sum1"for j in "$*" doecho "for2 this is $j" donefor k in "$@" doecho "for3 this is $k" done運行結果:
注意區分$*和 $@,上面的程序中將 & *和 $@都加了引號,看下面不加引號的程序:
程序2:
運行結果:
$*代表所有參數的整體, $@代表所有參數的集合,且每個參數仍然獨立,對于 $@來說,加不加引號都一樣,但是對于 $ *來說就有差別了,看下面的程序:
程序3:
運行結果:
類比一下,有點像C語言的宏,對于用所有參數替代掉原來的$*,將程序1和程序2中的 & *用所有參數替代掉,就能類比程序3。
四、while循環
1.基本語法
while [ 條件判斷式 ]
do
程序
done
只要涉及條件判斷式,就要注意中括號和式子之間的空格
2.示例演示
#!/bin/bashsum=0 while [ $sum -lt 10 ] doecho "sum 加了一次"sum=$[$sum+1] done運行結果:
總結
以上是生活随笔為你收集整理的Shell——流程控制(if、case、for、while)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell——运算符和条件判断
- 下一篇: Shell——read读取控制台输入和函