支柱の拡張に不要なスペース

支柱の拡張に不要なスペース

次の中かっこ拡張 (bash シェル) があります。

echo -e {0..4..2}" "{0..2..2}"\n"

私はこれが生産されると予想しました

0 0
0 2
2 0
2 2
4 0
4 2

しかし、最初の行を除く出力のすべての行には先行スペースがあり、最後に余分な空行があり、これは予期しませんでした。なぜこれですか?簡単に修正する方法はありますか?明らかにパイプで接続するなど、細かい操作を実行できますが、sed 's/^ //'追加のコマンドでパイプする必要がないより素晴らしい方法はありますか?

ベストアンサー1

echo改行を含めたり作成したりしても、スペースで区切られた引数を印刷します。また、出力の末尾に改行文字を追加します(そうでない場合echo -n)。

使用printf:

printf '%s\n' {0..4..2}" "{0..2..2}

予期しないことが起こったら、echoいつも考えるprintf。慣れたら、printf最初の選択になることもできます。

おすすめ記事