linux shellスクリプトフロー制御構文を3分で把握
1854 ワード
プロセス制御
この記事のオリジナルは公開番号:プログラミング3分[]()に発売されました.
今回のトピックは
shell
スクリプトのフロー制御であり、gif動図で見られる構文は以下の通りです.if else
#!/bin/bash
if [ $1 == $2 ];then
echo "a == b"
elif [ $1 -gt $2 ];then
echo "a > b"
elif [ $1 -lt $2 ];then
echo "a < b"
else
echo "error"
fi
[]()
forサイクル
#!/bin/bash
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
[]()
whileサイクル
#!/bin/bash
i=0
while [[ $i<3 ]]
do
echo $i
let "i++"
done
しゅつりょく
whileの判断条件はキーボードから入力でき、インタラクティブなスクリプトになります
#!/bin/bash
echo 'press exit'
while read num
do
echo "you input is $num"
done
ps:
until
サイクルはwhile
サイクルとは逆に,until
は判断条件が真であるまで停止し,文法はwhile
と全く同じであまり紹介されていない.[]()
デッドサイクル
while true
do
command
done
または
for (( ; ; ))
do
command
done
デッドサイクル、Ctrl+Cで終了します.
[]()
ジャンプサイクル
continue
とbreak
ですcase
#!/bin/bash
case $1 in
1) echo 'You have chosen 1'
;;
2) echo 'You have chosen 2'
;;
*) echo 'You did not enter a number between 1 and 2'
;;
esac
プログラミング言語の
switch
と同様に、文法のみがわずかに異なり、esac
はcase
の終了符である.各モードは、右かっこで
)
を終了し、一致しない場合は*)
を使用し、各モードは;;
の2つのセミコロンで連結されて終了する.case in
1)
command1
command2
...
commandN
;;
2)
command1
command2
...
commandN
;;
esac