Shell指令碼的基本流程控制

OldBoy~發表於2017-05-17

if else

read -p '請輸入分數:' score
if [ $score -lt 60 ]; then
	echo '60分以下'	
elif  [ $score -lt 70 ]; then
	echo '60-70分之間'	
elif  [ $score -lt 80 ]; then
	echo '70-80分之間'
elif [ $score -lt 90 ];	then
	echo '80-90分之間'
else 
	echo '90分以上'
fi

case

read -p '請輸入數字' week
week=`date +%w`                                     #當前日期
case $week in
	1)
	echo '週一'
		;;
	2)
	echo '週二'
		;;
	3)
	echo '週三'
		;;
	4)
	echo '週四'
		;;
	5)
	echo '週五'
		;;
	6)
	echo '週六'
		;;
	7)
	echo '週末'
		;;
	*)
	echo '輸入有誤'
		;;
esac

while

num=5
while [ $num -gt -5 ]; do
	if [ $(($num%2)) -eq 0 ];then
		echo -e "\033[31m${num}\033[0m"			#紅色字型
	else
		echo $num
	fi
	num=$(($num-1))
	sleep 1 				                #休眠一秒鐘
done						                #跳出迴圈後的輸出
	echo $num

forin  AND  for

for i in `cat users.txt`               #比如在users.txt檔案裡有很多使用者等待建立,預設是換行隔開(在linux裡也就是空格)
do
	echo $i
	useradd $i
	echo '123456'|passwd --stdin $i
done
for i in `cat /etc/passwd|awk -F: '{print $i}'`;
do
	echo $i
	echo $i>>users.txt                                                   #把所有的user列表重定向到users.txt
done
for (( i = 0; i < 10; i++ ));
do
	echo $i
	sleep
	if [ $i -eq 5 ]; then 			
		#break 						             #如果到5的時候,停止
		continue     				                     #如果到5的時候,跳過迴圈
	fi
	useradd usesr$i 					             #建立十個使用者
	echo 'passwd' | passwd --stdin user$i
done

相關文章