bash函数输出所有输入参数,包括引号或反斜杠

时间:2016-08-05 12:42:14

标签: bash function parameters escaping

在OS X上的bash中,我可以创建一个这样的函数:

function bla() { echo "$@"; }

现在我做的时候:

bla foo bar

输出是obvous:foo bar

当我执行bla "foo bar"bla foo\ bar时,在这两种情况下,输出仍为foo bar
不是"foo bar"foo\ bar

我理解为什么,但有没有办法让函数输出所有参数完全指定?

1 个答案:

答案 0 :(得分:-2)

我只在Linux上试过这个,但我猜它在OS X上会是一样的。你必须用反斜杠转义所有特殊字符。所以你的功能将是相同的,但当你调用它时,你必须逃避你想要回声的角色,例如。

bla \"foo bar\"

bla foo\\ bar

希望有所帮助。