与使用此处字符串相比,使用 bash -c 有什么优点?

与使用此处字符串相比,使用 bash -c 有什么优点?

bash -c 'some command'使用比使用有什么真正的好处吗bash <<< 'some command'

他们似乎达到了同样的效果。

答案1

bash -c 'some command'保留对调用者标准输入的访问,因此read或从标准输入读取的命令将正常工作。bash <<< 'some command'用传入的行替换该输入,因此bash -c catbash <<< cat做不同的事情。

$ bash -c cat
abc
abc
^D
$ bash <<< cat
$

另一方面,您可以利用该功能来提供您自己的标准输入,以便通过$'...',如果你非常小心的话:

$ bash <<< $'read x y\nabc def ghi\necho $y'
def ghi
$

我不想依赖它,但有时它可能很方便。


bash -c还允许将参数传递给脚本并$0进行设置:

bash -c 'some command' sh abc def

将设置$1abc$2to definside some command

相关内容