\t
水平タブ付きのオプションecho
wolf@linux:~$ echo hello
hello
wolf@linux:~$
wolf@linux:~$ echo -e '\thello'
hello
wolf@linux:~$
にも同様のオプションがありますかread
?
wolf@linux:~$ read -p 'hello '
hello wolf
wolf@linux:~$
wolf@linux:~$ read -p '\thello '
\thello wolf
wolf@linux:~$
希望の出力
wolf@linux:~$ read -p '\thello ' <- need something to produce something like tab or `\t` in `echo`
hello wolf
wolf@linux:~$
ベストアンサー1
$'...'
これらのエスケープシーケンスを理解するには、いつでもksh93スタイルの引用を使用できます。
IFS= read -r -p $'\thello ' var
(そして関係IFS=
ありません。それらがなければ、呼び出しはほとんど意味がない-r
のでここに追加しています)。read
これは-p
標準機能ではありませんsh
。 ksh / zshでは、-p
共同プロセスから読み取られ、プロンプトが指定されますread 'var?Prompt: '
。bash
ここで互換性のないAPIを導入することを選択したのは残念です。しかし、必ずしもそれを使用する必要はありません。-p
携帯用にできます:
printf >&2 '\thello '
IFS= read -r var
printf
型パラメータと指定子パラメータはこれらのエスケープシーケンスを認識します%b
。echo
認識の有無(または-e
認識オプションの許可)は実装によって異なり、多くの実装(組み込みを含むbash
)の場合、ビルド時間とランタイム設定によって異なります。避けるのが一番。