コマンドラインから生の入力を取得する(シェルメタ文字を無視)

コマンドラインから生の入力を取得する(シェルメタ文字を無視)

stdin拡張する前に、またはシェルが作業を実行する前に生のテキストを読む方法はありますか?ユーザーが文字列を入力して印刷するスクリプトを実行するとします。どのように次の動作を取得できますか?

$ sh test.sh
Please enter a string:
***<><><||&&*&$PATH

You entered:
***<><><||&&*&$PATH

''ユーザーがそうしなくても、暗黙的にすべてのメタ文字にテキストを囲むか、すべてのメタ文字をエスケープする方法はありますか?

ベストアンサー1

この試み:

$ read -r -p 'Please enter a string >>> ' var
$ printf '%q\n' "$var"
\*\*\*\<\>\<\>\<\|\|\&\&\*\&\$PATH

おすすめ記事