在Unix ksh中,我可以将变量从一个脚本传递到另一个ksh脚本作为该脚本调用中的参数,而不是通过导出使它们全局化吗?

时间:2016-11-07 20:30:47

标签: shell unix scripting ksh

现在我有:

脚本A:

export var1="path"
export var2="test"
export var3="message"

/path/to/scriptB "$var1" "$var2" "$var3"

这是有效的,我可以访问脚本B中的变量值,但我不希望其他调用脚本B的脚本影响这些全局变量值。有没有办法通过脚本调用传递值而不首先将变量导出到全局范围?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

即使您导出了变量,子shell也可以读取它们,在本地更改它们,但永远不会在scriptA中更改它们(除非脚本被称为源为.前缀)

无论如何,由于您将变量作为scriptB参数传递,因此您甚至不需要export

var1="path"
var2="test"
var3="message"

/path/to/scriptB "$var1" "$var2" "$var3"

只需将其引用为scriptB个参数:$1$2$3

如果确实希望使用scriptB中的姓名访问它们,请在scriptB

中执行此操作
var1="$1"
var2="$2"
var3="$3"