0
我有这样的功能:如何将函数的结果作为参数传递给Bash函数?
test() {
echo "$1"
}
$1
可以接收的参数。此作品:
test "i am here"
i am here
现在我想要收到date
的结果。
date
Tue Jan 10 10:36:10 CST 2017
test `date`
Tue
如何使1月10日十点36分10秒CST 2017年不能省略?
它完全不是*省略*,而是作为单独的参数传递,因为执行不带引号的扩展(有一些例外,如赋值的右边)会经过字符串分割和通配以形成它们的单词列表评估为。例如'10'是''$ 2''。如果你通过http://shellcheck.net/运行你的代码,它会发现导致这个错误的引用。 –
顺便说一句,'$()'语法是强烈的首选 - 它是POSIX sh的一个必需部分,因此可移植,但也比反引号更容易嵌套。 (写'hello'$(残酷的“$(world)”)“'是微不足道的;它的基于反向的等价...不是)。 –