[英]Using bash script and using the case statement
我正在嘗試創建一個bash命令,在其中輸入1到12之間的數字,並且它使用switch命令,但是在bash shell中是case命令。 我只需要確保我有正確的想法就可以了,否則我將無法完成
#!/bin/bash
1="January"
2="February"
3="March"
4="April"
5="May"
6="June"
7="July"
8="August"
9="September"
10="October"
11="November"
12="December"
case "1" in
print "$1"
case "2" in
print "$2"
case "3" in
print "$3"
case "4" in
print "$4"
case "5" in
print "$5"
case "6" in
print "$6"
case "7" in
print "$7"
case "8" in
print "$8"
case "9" in
print "$9"
case "10" in
print "$10"
case "11" in
print "$11"
case "12" in
print "$12"
echo "Please enter a number 1 through 12"
read input_variable
echo "$input_variable"
恐怕你有點不滿意。 這有點像它:
#!/bin/bash
echo "Please enter a number 1 through 12"
read input_variable
case $input_variable in
1)
echo "January"
;;
2)
echo "February"
;;
3)
echo "March"
;;
4)
echo "April"
;;
# 5), 6) etc.
*) # anything else
echo "not recognised"
;;
esac
@Charles Duffy是正確的,您實際上不需要這種case
。 您可以改用如下數組:
編輯 :當我寫這篇文章,我看到@devnull的改進!
#!/bin/bash
echo "Please enter a number 1 through 12"
read input
months=( January February March April May June July August September October November December )
[ $input -gt 0 -a $input -le 12 ] && echo "${months[input-1]}"
或者,如果願意,在數組的開頭使用一個虛擬條目(感謝@chepner)
months=( "" January February March April May June July August September October November December )
[ ! -z "${months[input]}" ] && echo "${months[input]}"
采用:
read -p "Enter a number between 1 and 12: " input
因為它簡化了代碼。 然后使用:
case $input in
...如湯姆·費內奇所說
但是,是的,case語句更多地用於針對相同類型的結果進行測試,但是要根據結果來執行不同的操作。 您在這里回顯所有內容,所以是的,將字符串存儲在數組中,然后根據輸入將其輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.