例如,虽然这有效:
$回声富 富
这不会:
$ /bin/sh -c echo foo
而这样做:
$ /bin/sh -c 'echo foo; 回声栏' 富 酒吧
有解释吗?
foo (){
sudo -- sh -c "cd /home/rob; echo \"$@\""
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个 bash 函数.bashrc
,将 sudo 更改为特定目录,然后运行 Python 命令。出于演示目的,我在上面的示例中将其更改为 echo。
尽管我已引用$@
将所有参数传递给 echo 命令,但它仅适用于一个:
$ foo 1
1
$ foo 1 2
2": -c: line 0: unexpected EOF while looking for matching `"'
2": -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?如何向该函数传递多个参数?