我有一个BASH脚本来添加两个数字,我想通过命令行参数传递两个数字。
cat add.sh
a=$1
echo "exit status for a " $?
b=$2
echo "exit status for b " $?
sum=`expr $a + $b`
echo "exit status for sum " $?
echo "result is " $sum
echo "exit status for result " $?
当我运行上面的脚本而不提供任何值或参数时,我得到以下输出。
$ ./add.sh
exit status for a 0 (expecting 1 here)
exit status for b 0 (expecting 1 here)
expr: syntax error
exit status for sum 2
result is
exit status for result 0 (expecting 1 here)
我期待$的价值?当我没有通过命令行提供任何参数时,为1,因此分配a和b的值必定是错误。
有人解释为什么当通过命令行提供NO值时,a = $ 1或b = $ 2不会返回退出状态1? 为什么它返回0?