test命令
用途:測試特定的表達式是否成立,當條件成立時,命令執行後的返回值爲0,否則爲其他數值
格式:test 表達式 [條件表達式]
常見的測試類型
- 測試文件狀態
- 字符串比較
- 整數值比較
- 邏輯測試
- 流程判斷
- if語句
- if語句
if例子:
#!/bin/bash
#This is first shell program
score=87
if [ $score -lt 60 ];then
echo '60以下'
elif [ $score -ge 60 ] && [ $score -lt 70 ];then
echo '60-70之間'
elif [ $score -ge 70 ] && [ $score -lt 80 ];then
echo '70-80之間'
elif [ $score -ge 80 ] && [ $score -lt 90 ];then
echo '80-90之間'
else
echo '90以上'
fi
- case語句
case例子
#!/bin/bash
#test1.sh
case $1 in
start)
echo 'start...'
;;
stop)
echo 'stop...'
;;
restart)
echo 'restart...'
;;
*)
echo 'please input start|stop|restart'
;;
esac
- 循環控制
while例子
#!/bin/bash
#whiletest.sh
num=3
while [ $num -gt 0 ]
do
echo $num
num=$(($num-1))
sleep 1
done
echo $num
for例子
#!/bin/bash
#fortest.sh
for i in `cat user.txt`
do
echo $i
useradd $i
echo 123|passwd --stdin $i
done
break例子
#!/bin/bash
#fortest2.sh
for((i=0;i<10;i++))
do
if [ $i -eq 5 ];then
break
fi
done
continue例子
#!/bin/bash
#fortest2.sh
for((i=0;i<10;i++))
do
if [ $i -eq 5 ];then
continue
else
echo $i
fi
done
case 例子more
#!/bin/bash
#fortest2.sh
read -p 'please press one key:' key
case $key in
[a-z]|[A-Z])
echo '字母鍵!'
;;
[0-9])
echo '數字鍵!'
;;
*)
echo '功能鍵!'
;;
esac
shift遷移語句
shell編程Tips
自定義函數
#!/bin/bash
#fortest2.sh
function add(){
num=$1
tot=0
for((i=1;i<=$num;i++))
do
tot=$(($tot+$i))
done
echo $tot
}
add 10