将变量传递给bash脚本与为脚本设置env变量

时间:2017-05-24 08:59:33

标签: bash parameter-passing

将一些环境变量传递给脚本最好的是什么?

./script.sh ${A} ${B}

A=${A} B={$B} ./script.sh

我总是看到第一个,但是我的同事说第二种方式更好,因为当你添加一个你不需要的新参数时,你不必记住变量的顺序和脚本内部从$*解析它。

除了让脚本调用时间更长之外,后者还有禁忌吗?

我不想使用export(因为每个脚本都可以访问env变量),也不想在调用脚本之前使用.(我想让脚本只能使用子集变量)

1 个答案:

答案 0 :(得分:1)

如果参数数量有限,可以使用位置参数。

一旦你有一个复杂的脚本,其中有几个名为parameters的参数是首选方法。

命名参数有几种方法:

  1. 您提到的方法:

    A = $ {A} B = {$ B} ./ script.sh

  2. 使用 getopt

  3. goodcoding getoptposix getopt man

    1. 使用 getopts
    2. getopts_tutorialposix getopts man