shell腳本if和switch語句編寫案例

       最近學着Linux的shell編程,學到循環和條件語句部分的時候,就想着自己寫一個試試吧,於是就有了下面的關於星座判斷的程序。(PS:程序並沒有實現農曆到陽曆的轉換,而且沒有考慮閏年,只是一個單純的簡單編程大笑

#!/bin/sh

echo "這個程序是用來查詢星座用的"
while [ "$mounth"=="OFF" ];
do
	echo "請輸入你要查詢的月份"
	read mounth
	echo "請輸入你要查詢的日期"
	read day
	if [ "$day" -lt 1 ]
	then
		echo "你輸入的日期有誤"
	fi
	case "$mounth" in
		1 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 19 ]
			then
				echo "你的星座是摩羯座"
			else
				echo "你的星座是水瓶座"
			fi
			;;
		2 )
			if [ "$day" -gt 28 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -ge 18 ]
			then
				echo "你的星座是水瓶座"
			else
				echo "你的星座是雙魚座"
			fi
			;;
		3 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 20 ]
			then
				echo "你的星座是雙魚座"
			else
				echo "你的星座是白羊座"
			fi
			;;
		4 )
			if [ "$day" -gt 30 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 19 ]
			then
				echo "你的星座是白羊座"
			else
				echo "你的星座是金牛座"
			fi
			;;
		5 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 20 ]
			then
				echo "你的星座是金牛座"
			else
				echo "你的星座是雙子座"
			fi
			;;
		6 )
			if [ "$day" -gt 30 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 21 ]
			then
				echo "你的星座是雙子座"
			else
				echo "你的星座是巨蟹座"
			fi
			;;
		7 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 22 ]
			then
				echo "你的星座是巨蟹座"
			else
				echo "你的星座是獅子座"
			fi
			;;
		8 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 22 ]
			then
				echo "你的星座是獅子座"
			else
				echo "你的星座是處女座"
			fi
			;;
		9 )
			if [ "$day" -gt 30 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 22 ]
			then
				echo "你的星座是處女座"
			else
				echo "你的星座是天秤座"
			fi
			;;
		10 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 23 ]
			then
				echo "你的星座是天秤座"
			else
				echo "你的星座是天蠍座"
			fi
			;;
		11 )
			if [ "$day" -gt 30 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 22 ]
			then
				echo "你的星座是天蠍座"
			else
				echo "你的星座是射手座"
			fi
			;;
		12 )
			if [ "$day" -gt 31 ]
			then
				echo "你輸入的日期有誤"
			fi
			if [ "$day" -le 21 ]
			then
				echo "你的星座是射手座"
			else
				echo "你的星座是摩羯座"
			fi
			;;
		* )
			echo "你的月份輸入有誤"
			exit 1
			;;
	esac
done
exit 0

       程序涉及的只是比較簡單,就不詳細說了。程序的目的是以下幾點:

1、判斷輸入的月份和日期是否正確

2、根據輸入的時間判斷星座。

       其實就是這麼簡單偷笑 純粹用來自娛自樂的程序,如有問題,歡迎指正。。。

發佈了18 篇原創文章 · 獲贊 13 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章