here文字列を使用するよりもbash -cを使用すると、どのような利点がありますか?

here文字列を使用するよりも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

と内部$1に設定されます。abc$2defsome command

関連情報