变量单引号函数调用,为什么?

时间:2012-02-17 09:31:09

标签: function arguments sh

我有这个问题,我有两个(bourne)shell脚本,有子程序,另一个有主程序。

问题在于论证传递。

在我的子程序脚本中,我有这个:

test() { echo "$1" }

当从主程序中调用时:

test "foo bar"

回声的结果是'foo bar'(注意单引号) 当我将测试修改为:

test() { FOOBAR="foo bar"; echo "$FOOBAR" }

然后结果不包含引号。

然后subroutinescript来源如下:

. testroutines.sh

使用sh -x我看到传递似乎的变量用单引号引用?

我错过了什么?

1 个答案:

答案 0 :(得分:0)

它似乎与IFS有关,它设置不正确。它没有空格。