是否可以通过动态参数执行另一个shell脚本或不传递任何参数?有人可以帮我解决下面的情景吗?
注意: script2有两个输入参数
情境:
我需要从script1调用shell script2而不传递任何参数,在这种情况下,script2应该考虑在script2中声明的默认值。
如果我传递第二个参数,第二个脚本应该使用script1中的第二个参数,第一个参数应该是script2中声明的默认值。
#!/bin/sh
Val1=${1:-1st default}
Val2=${2:-2nd default}
echo "val1: $Val1"
echo "val2: $Val2"
exit 1
./Script2.sh $IN_B
以下脚本2将在Script1
中调用val1: 1st default
val2: Value2
预期:
val1: Value2
val2: 2nd default
实际值:
{{1}}
答案 0 :(得分:1)
你的问题对我没有多大意义。如果您希望script2
使用默认值,请将其写为:
#!/bin/sh
val1=${1:-default value}
val2=${2:-2nd default}
当您在没有参数的情况下调用它时,变量val1
和val2
将获得其默认值。如果用一个参数调用它,val1
将被赋予该参数,val2
将获得默认值。如果使用两个参数调用它,则每个变量将从位置参数中获取值。无论是从命令行还是从脚本调用它都不是特别相关。