ここで文字列の終わりは何ですか?

ここで文字列の終わりは何ですか?

ここの文字列の終わりは改行文字のようです。私は間違っていることに気づきました。

$ cat <<< hello world
cat: world: No such file or directory

ここで文字列の終わりを何で表すことができますか?

答え1

これここで、文字列の構文は次のとおりです。:

<<< word

どこ言葉シェルで 1 つの単位として扱われる一連の文字です。、スペースで区切られます。これは、単一の一般的な単語(hello)、一重引用符、または二重引用符で囲まれた文字列( 'hello world'、、 )、"hello world"パラメータまたはコマンド置換($foo$(...))、バックスラッシュエスケープを使用して結合された項目、またはそれらの組み合わせです。

1行に複数のhere文書またはhere文字列がある可能性があるため、行末は次のように使用できません。ただ区切り文字がない場合はそこで終了します(改行文字がバックスラッシュでエスケープされない限り)。

欲しい効果が得られるでしょう。

cat <<<'hello world'

または

cat <<<hello\ world

答え2

マニュアルから:

[n]<<<言葉

エンディングは複数の単語ではなく、1つの単語です。したがって、この例では、最初の単語はhelloここで文字列を終了することです。次の単語は、worldそれが一般的なパラメータであり、cat読み取るcatファイル名であると仮定していることです。

次のように、より明確に書くことができます。

$ cat world <<< hello

関連情報