二重引用符で囲まれた $'\n' は機能しません。

二重引用符で囲まれた $'\n' は機能しません。

改行文字を含む文字列を次のようにプログラムにコマンドライン引数として送信したいと思います。

myprogram Hello$'\n'World

ただし、文字列に二重引用符を使用すると、次のようになります。

myprogram "Hello$'\n'World Hello Again"

その後、受信した文字列には改行文字の代わりにmyprogramその文字列が含まれます。$'\n'

ベストアンサー1

この構文を引用しても$'…'効果はありません。使用:

$ myprogram "Hello"$'\n'"World Hello Again"

または

$ myprogram Hello$'\n'World\ Hello\ Again

または

$ a=$'\n'
$ myprogram "Hello${a}World Hello Again"

または

$ myprogram "$(echo -e 'Hello\nWorld Hello Again')"

または

$ myprogram "Hello
World Hello Again"

おすすめ記事