👱
这神龙岛全是岔路,一会往左一会往右(if-else),还要绕着圈子走(loop),头都晕了!
👳
这就是流程控制。如果是岔路,就用 if 或 case;如果是绕圈子,就用 for 或 while。只要掌握了这套步法,任何迷宫都困不住你。
🛤️ 岔路口 (if / else)
遇到分岔路,看情况决定往哪走。
if [ $money -gt 100 ]
then
echo "去怡红院"
elif [ $money -gt 50 ]
then
echo "去喝花酒"
else
echo "回家睡觉"
fi
then
echo "去怡红院"
elif [ $money -gt 50 ]
then
echo "去喝花酒"
else
echo "回家睡觉"
fi
注意:if 结尾必须要把 if 倒过来写 fi,表示结束。
🔄 绕圈子 (for 循环)
当你需要把所有老婆都问候一遍。
for wife in 双儿 阿珂 建宁
do
echo "亲爱的 $wife,我想死你了!"
done
do
echo "亲爱的 $wife,我想死你了!"
done
⏳ 守株待兔 (while 循环)
只要条件满足,就一直做。
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
while(( $int<=5 ))
do
echo $int
let "int++"
done
🃏 翻牌子 (case)
当选项很多时,用 case 比 if 更方便。就像皇上翻牌子。
read name
case $name in
"双儿") echo "温柔贤惠" ;;
"建宁") echo "刁蛮任性" ;;
*) echo "不认识这人" ;;
esac
case $name in
"双儿") echo "温柔贤惠" ;;
"建宁") echo "刁蛮任性" ;;
*) echo "不认识这人" ;;
esac
注意:每个选项后面要用双分号 ;; 结束,整个语句用 case 倒过来 esac 结束。
🖐️ 动手时刻:猜数字游戏
编写 guess.sh,让脚本想一个数字,你去猜。
- 编写脚本:
#!/bin/bash target=8 echo "韦爵爷想了一个数字(0-9),你猜猜是多少?" while read guess do if [ $guess -eq $target ] then echo "恭喜你!猜对了!" break # 猜对就跳出循环 elif [ $guess -lt $target ] then echo "猜小了,再大点!" else echo "猜大了,再小点!" fi echo "请继续猜:" done - 运行:
bash guess.sh