【发布时间】:2016-08-05 12:42:13
【问题描述】:
在 OS X 上的 bash 中,我可以创建这样的函数:
function bla() { echo "$@"; }
现在当我这样做时:
bla foo bar
输出很明显:foo bar
当我执行bla "foo bar" 或bla foo\ bar 时,两种情况下的输出仍然是foo bar。
不是"foo bar" 或foo\ bar。
我明白为什么,但有没有办法让函数按指定完全输出所有参数?
【问题讨论】:
-
试试
bla '"foo bar"'不确定是否需要反斜杠。 -
引用在读取参数时被消耗,它们不是参数的一部分。
-
shell 不是这样工作的。
-
您是否有特殊原因需要这种行为?
-
@RocketNuts 您可以使用
trap DEBUG和$BASH_COMMAND准确地回显输入的内容。
标签: bash function parameters escaping