小编Sil*_*Fox的帖子

为什么称为 /bin/sh -c echo foo 的 echo 不输出任何内容?

例如,虽然这有效:

$回声富
富

这不会:

$ /bin/sh -c echo foo

而这样做:

$ /bin/sh -c 'echo foo; 回声栏'
富
酒吧

有解释吗?

command-line shell echo arguments

16
推荐指数
3
解决办法
8625
查看次数

在函数内将多个参数传递给 sudo

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)

是什么赋予了?如何向该函数传递多个参数?

shell bash function

1
推荐指数
1
解决办法
1671
查看次数

标签 统计

shell ×2

arguments ×1

bash ×1

command-line ×1

echo ×1

function ×1