エコーされた文字列間の間隔を無視します。

エコーされた文字列間の間隔を無視します。

echo次の2つのコマンドのいずれかを使用して、2つの文字列をファイルに印刷します。

echo -e "\n""x" >> ~/file
echo -e "\n" "x" >> ~/file

最初の結果は次のとおりです。

X

2番目の結果は次のとおりです。

X

余分な空間も見逃さなかったと思います。

私は2番目のコマンドが最初のコマンドと同様に動作することを最も望んでいます。"\n"との間に余分なスペースがあり、"x"コマンドをより快適に読むことができるからです。

Bash 4.3.48(1)では、これが自然に不可能であることを考えると、これを許可するか、少なくともそれに近い構文がありますか?

主な目的は、より快適に読みやすいように、2つの文字列の間にある種の分離を提供しますが、上に余分なスペースを残さない間隔、または少なくともいくつかのプレースホルダ/区切り文字を持つことです。

ご存知の様子を教えてください。私は他のものを使うことに興味がありますecho(ここでは文字列を避けることを好むが)。


「」を意味するために「文字列」という用語を使用したことに注意してください\n。ここで言うのが正しいかどうかはわかりませんが、これを説明するために使用できる最高の用語です。

ベストアンサー1

次のコマンドを使用してこれを実行できますprintf

printf '\n%s\n' 'x' >file

を使用すると、スペースを削除してこれを行うことがechoできますtr

echo -e '\n x' | tr -d ' ' >file

次のように書くこともできます(ただし、そうしないでください)。

echo -e '\n' 'x' | tr -d ' ' >file

結果:

$ cat file

x

私はこれが実際にあなたが注文できると簡単に主張できると思います。もっと強く読む。

おすすめ記事