一般程序里的局部变量我们都会设置默认值,如果没有传真值,程序执行时候使用默认值,这个在python或其它程序里都比较好实现,在shell里如何实现呢?
test.sh代码
a=1
b=1
echo "\$0 =${0} \$1=${1} \$2=${2}"
echo "default a=${a} b=$b"
echo "update a=${a} b=$b"
即使我们这样执行 bash test.sh --a 10 --b 22, 执行结果
(notebook) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs/lesson/v1/tmp# bash test.sh --a 10 --b 22
$0 =test.sh $1=--a $2=10
default a=1 b=1
update a=1 b=1
我们看到a,b的值并没有更新,如果想要a,b更新应该怎么办呢?
第一种写法是:在原脚本里增加传入参数判断。这个方法虽然也能实现修改参数默认值,但是写法上增加很多行脚本。
a=1
b=1
echo "\$0 =