明示的な形式で文字列を印刷するbashコマンド

明示的な形式で文字列を印刷するbashコマンド

bash含まれている特殊文字を公開する方法で文字列を印刷するコマンドがあるかどうか疑問に思います。

たとえば、文字通り印刷する関数がa=$'\a\0\b\e'あるとします。\a\0\b\e$a

これまでに得られた最も近いコマンドは、l次のコマンドを使用することですsed

echo "$a"  | sed -n 'l'

返されますが、\a\000\b\033$表記は内部とは異なり、$''文字列に改行文字が含まれている場合は効果がありません。

答え1

var=$'a b \10 c'
printf %q "$var"
    $'a b \b c'

これはうまくいきますbash。これがどれほど互換性があるかわかりません。

関連情報