我正在尝试创建一个 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]}"
关于linux - 使用 bash 脚本和使用 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22791244/