Bashで1行を変数として読み取るには、次のようにします。
read -p "here:" _msg; echo "${_msg}" > _read
xyz123
期待を持って誤って最初に作成し_msg
ましたが、今カーソルを移動してから入力を続けるには、3回タップする必要がありますが、123
モードに入るのと同じようです。←1
xyz
INSERT123
xyz
here:xyz
その後、最終ファイルを確認しました。
xxd _read
私は持っています
00000000: 7879 7a1b 5b44 1b5b 441b 5b44 3132 330a xyz.[D.[D.[D123.
入力された制御文字を無視する方法
WindowsのMINGW64でbashを実行しています。
答え1
bash
man bash
( )のドキュメント、特に説明の部分を読むと、追加のread
オプションがあることがわかります。
-e
標準入力が端末から出てくる場合readline
(上記のREADLINEを参照)、ラインを取得するために使用されます。
それ以外の場合は、次のガイドラインに従ってください。
読書船これは、対話型シェルを使用するときに入力読み取りを処理するライブラリです。 [...]
このディレクティブを適用すると、次のようになります。
read -e -p "here:" _msg; printf '%s\n' "$_msg" > _read
と入力したら、123
3つのカーソルが離れてabc
ファイルから次のものを取得します_read
。
hexdump -C _read
00000000 61 62 63 31 32 33 0a |abc123.|