一、條件語句
a=10
b=20
#if
if [ $a == $b ]
then
echo "兩數相等"
fi
寫成一行:
if [ $a != $b ]; then echo "兩數不相等"; fi
#if else
if [ $a == $b ]
then
echo "兩數相等"
else
echo "兩數不等"
fi
#if else-if else
if [ $a > $b ]
then
echo "a > b"
elif [ $a = $b ]
then
echo "a = b"
else
echo "a < b"
fi
二、for語句
for val in 1 2 3
do
echo "$val"
echo "hi"
done
寫成一行:
for val in 1 2 3; do echo "$val"; echo "hi"; done;
for ((i=1;i<10;i++))
do
echo "$i"
done
三、let命令
let a=1+2
echo -e "$a\n"
b=8
let "b++" # 雙引號可以省略,變量計算中不需要加上 $ 來表示變量
echo "$b"
四、while循環
4.1 一般格式
a=1
while (( $a < 5 ))
do
echo "$a"
let "a++"
done
4.2 while循環可用於讀取鍵盤信息
echo '按下 <CTRL-D> 退出'
echo -n '輸入你最喜歡的網站名: '
while read FILM
do
echo "是的!$FILM 是一個好網站"
done
4.3無限循環,三種方法
while :
do
echo "good!"
done
------------------
while true
do
echo "good!"
done
------------------
for (( ; ; ))
do
echo "good!"
done
五、until循環,與while相反,不滿足條件就執行循環體
a=0
until [ $a -gt 5 ] # 等同於 until (( $a > 5 ))
#until (( $a > 5 ))
do
echo "$a"
a=`expr $a + 1`
done
六、case
c=3
case $c in
1) echo "you choose 1"
echo "congra"
;;
2) echo "you choose 2"
echo "congratulation"
;;
*) echo "your choose not 1-2"
;;
esac # case反過來 esac作爲結束
read aNum # 鍵盤輸入
echo "$aNum" # 打印輸入的值
七、break,跳出所有循環
while :
do
echo -n "輸入值:"
read aNum
case $aNum in
1|2|3|4|5) echo "輸入值爲 $aNum "
;;
*) echo "輸入值不在1-5之間,game over!"
break
;;
esac
done
# echo -n 不換行輸出
八、continue,跳出當前循環
while :
do
echo -n "輸入值:"
read aNum
case $aNum in
1|2|3|4|5) echo "輸入值爲 $aNum "
;;
*) echo "輸入值不在1-5之間"
continue
echo "game over!"
;;
esac
done
九、shell函數
9.1.函數定義
demoFun() {
echo -e "This is my first function!\n"
}
9.2.有返回值
#函數定義
add() {
echo -n "1th num:"
read num1
echo -n "2th num:"
read num2
return $(($num1 + $num2))
}
add # 函數調用
echo "num1 + num2 = $?" # 調用該函數後通過 $? 來獲得返回值
9.3.帶參數
pare() {
echo "1th $1"
echo "2th $2"
}
pare 3 5 # 調用時帶參數
3.輸出重定向
history > 1
# 將history輸出的內容替換1中的內容
history >> 1
# 將history輸出的內容放到1中,將新內容添加在文件末尾