印刷できない文字が必要なプログラムがあります。0x0F(ctrl+ o)はプログラムの意図した部分を実行するための入力です。
0 000 00 NUL � Null char
1 001 01 SOH  Start of Heading
2 002 02 STX  Start of Text
3 003 03 ETX  End of Text
4 004 04 EOT  End of
コマンドラインから実行されます。印刷できない文字をプログラム入力としてコマンドラインに挿入する方法を知っていますか?
ベストアンサー1
このprintf
ユーティリティは8進文字エスケープをサポートします。
- XBDファイル形式表記法(、、、、、、、、)
'\\'
に表示される'\a'
エスケープシーケンスに加えて'\b'
'\f'
'\n'
'\r'
'\t'
'\v'
"\ddd"
ディディ8進数で指定された値でバイトを書き込む必要がある1桁、2桁、または3桁の8進数。
printf
少なくともBashとZshの組み込み機能は、16進エスケープシーケンス\xHH
と$'...'
同様の方法でエスケープシーケンスを挿入する引用符もサポートします。
したがって、特定のコマンドのコマンドライン引数にこれらの文字を使用するには、次の手順を実行します。
$ somecmd "arg_with_$(printf '\017')_xoff"
または、その文字を複数回使用する必要がある場合は、変数に入れてください。
$ xoff=$(printf '\017')
$ somecmd "many${xoff}odd${xoff}chars"
または、コメントに記載されているコマンドに2バイト0x0f 0x11
(8進数)を送信します。017 021
$ printf "\x0f\x11" | somecmd...
$ printf "\017\021" | somecmd...