bashスクリプトを実行し、各エコーの間にスペースを入れたいです。現在私はそうします:
#!/bin/bash
echo
echo 'foo'
echo
echo 'bar'
出力
foo
bar
しかし、それほど専門的ではないようです。このようにしてみましたが、最初の行のスペースが倍増します。
echo -e '\n'
echo -e 'foo\n'
echo -e 'bar\n'
最初の行を変更するには、次のように入力します。
echo -e ''
別の方法がありますか?
答え1
フォーマットされた出力が必要な場合は幸運かもしれませんprintf
。
$ printf "\n%s\n\n%s\n" "foo" "bar"
foo
bar
$
私はこれをC関数と考える傾向がありますが、printf
以下の説明で@freddyが提案したように、次のように単純化できます。
$ printf "\n%s\n" "foo" "bar"
foo
bar
(man zshbuiltins
しかしこれは実装では一般的だと思います):
If arguments remain unused after formatting, the format string is reused until all arguments have been consumed.
答え2
?
echo -e "\nfoo"
echo -e "\nbar"
答え3
#function out() {
# echo
# echo $*
#}
# or
function out() {
echo -e '\n'"$*"
}
out foo
out bar
この回答を他の関連する回答と組み合わせることも検討してくださいprintf
。