【问题标题】:variables single quoted in function call, why?函数调用中单引号的变量,为什么?
【发布时间】:2012-02-17 09:31:09
【问题描述】:

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

问题在于参数传递。

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

test() { echo "$1" }

当像这样从主程序调用时:

test "foo bar"

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

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

那么结果不包含引号。

那么 subroutinescript 的来源是这样的:

. testroutines.sh

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

我错过了什么?

【问题讨论】:

  • 我只想接受一个可以接受的答案。也许我的问题很难?

标签: function arguments sh


【解决方案1】:

似乎与IFS有关,设置错误。它不包含空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2020-08-20
    • 2016-03-24
    • 2017-06-20
    • 2020-12-13
    相关资源
    最近更新 更多