调用另一个shell脚本而不传递任何参数

时间:2017-01-17 17:34:26

标签: shell

是否可以通过动态参数执行另一个shell脚本或不传递任何参数?有人可以帮我解决下面的情景吗?

注意: script2有两个输入参数

情境:

  1. 我需要从script1调用shell script2而不传递任何参数,在这种情况下,script2应该考虑在script2中声明的默认值。

  2. 如果我传递第二个参数,第二个脚本应该使用script1中的第二个参数,第一个参数应该是script2中声明的默认值。

  3. 脚本:1

    #!/bin/sh
    Val1=${1:-1st default}
    Val2=${2:-2nd default}
    
    echo "val1: $Val1"
    echo "val2: $Val2"
    exit 1
    

    脚本:2

     ./Script2.sh $IN_B
    

    以下脚本2将在Script1

    中调用
    val1: 1st default
    val2: Value2
    

    预期:

    val1: Value2
    val2: 2nd default
    

    实际值:

    {{1}}

1 个答案:

答案 0 :(得分:1)

你的问题对我没有多大意义。如果您希望script2使用默认值,请将其写为:

#!/bin/sh

val1=${1:-default value}
val2=${2:-2nd default}

当您在没有参数的情况下调用它时,变量val1val2将获得其默认值。如果用一个参数调用它,val1将被赋予该参数,val2将获得默认值。如果使用两个参数调用它,则每个变量将从位置参数中获取值。无论是从命令行还是从脚本调用它都不是特别相关。