bash -c 'some command'
使用比使用有什么真正的好处吗bash <<< 'some command'
他们似乎达到了同样的效果。
答案1
bash -c 'some command'
保留对调用者标准输入的访问,因此read
或从标准输入读取的命令将正常工作。bash <<< 'some command'
用传入的行替换该输入,因此bash -c cat
和bash <<< 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
将设置$1
为abc
和$2
to def
inside some command
。