我正在做一些练习。
编写一个脚本,该脚本将使用月份号作为参数,并将其转换为月份名称。结果将被打印到标准输出。
我提出了一个解决方案:
#test for number of argument
if [ "$#" -eq 0 ] ;
then
echo -e "No argument."
echo -e "Write a number between 1 and 12."
exit 1
elif [ "$#" -gt 1 ] ;
then
echo -e "More than 1 argument."
echo -e "Write a number between 1 and 12."
exit 1
else
numb=$1
case "$numb" in
1) echo "Month: January";;
2) echo "Month: February";;
3) echo "Month: March";;
4) echo "Month: April";;
5) echo "Month: May";;
6) echo "Month: June";;
7) echo "Month: July";;
8) echo "Month: August";;
9) echo "Month: September";;
10) echo "Month: October";;
11) echo "Month: November";;
12) echo "Month: December";;
*) echo -e "You wrote a wrong number. Try again with writing number between 1 and 12.";;
esac
fi
exit 2
exit 0
做什么exit 1, exit 0
和exit 2
意味着,我们为什么要使用它?
5
成功执行的代码应以代码0退出。其他值表示错误。例如,请参见具有特殊含义的退出代码
—
V. Olsen
bash脚本就像电影院一样,存在着不同之处。exit语句标记了bash解释器的出口位置。当脚本被触发时,解释器需要运行直到最近的出口。
—
DepressedDaniel
如果这是您编写的代码,那么您为什么使用甚至不理解的语句?
—
德米特里·格里戈列耶夫
1)您同意的批复权张贴的问题后。给它24小时以等待更好的答案。2)公认的答案是错误和误导的。正确的答案是“退出代码没有默认含义(超过0 =成功);您作为脚本开发者来定义语义”。3)如果创建了该脚本,为什么还要添加退出命令(从逻辑上讲,所有这些命令都是多余的,或者因为无论如何都使用if-else可能会折叠为“退出1”)。
—
AnoE