$ printf "hi"
hi$ printf "hi\n"
hi
$ printf "hi\\n"
hi
最後の行が印刷されないのはなぜですかhi\n
?
ベストアンサー1
関係はありませんが、printf
すべてに関連しています。あなたがする主張printf
。
二重引用符で囲まれた文字列では、シェルはに\\
なります\
。したがって、ユーザーが提供する引数はもちろんprintf
実行されます。hi\n
printf
それエスケープシーケンス処理がオンになっています。
二重引用符で囲まれた文字列では、シェルによる\
エスケープは特に␊、、、および文字にのみ影響するように\
制限`
され$
ています"
。あなたはそれがそのまま渡されることがわかります\n
。printf
だからあなたがやっている主張はprintf
実際にhi\n
再び。
フォーマット文字列にエスケープシーケンスを入れるときは注意してくださいprintf
。 一部のみで定義された意味シングル Unix 仕様。たとえば、定義され\n
ていますが、実際には定義されていません。\c