どちらかというとごはん派

主に仕事用のメモブログ。

【bash】 echoとprintfの違い

2008年10月14日 14時45分06秒 | linux bash
echo "test" > work.txt
printf "test" > work.txt

上記2つは同じ動作をするので、大きく違いはないし
変数+文字列の出力をprintfで行うことが多いが、
echoでも実現可能であるから、好みで使えば良いと思う。

ただ1点、改行に関してechoは注意が必要。

例えば FreeBSD・Linux 系は改行のオプションが -n 、
Solaris など SystemV 系は \c 、
bash は -n 、
tcsh はデフォルトでは -n だがシェル変数 echo_style で変更可能。
改行について悩みたくない場合は、echo コマンドではなく printf コマンドを使うこと。

echo と異なり、改行させたい場合 \n を付ける事。

% printf "abc"; printf "def"
abcdef

文字列を表示するには %s を使う
% printf "HOME=[%s]\n" $HOME

複数のフォーマットも指定できる
% printf "HOME=[%s] USER=[%s]\n" $HOME $USER

数値は %d を使う
% printf "[%d]\n" 30
[30]

5桁で右詰め
% printf "[%5d]\n" 30
[ 30]

5桁で左詰め
% printf "[%-5d]\n" 30
[30 ]

5桁でゼロパディング
% printf "[%05d]\n" 30
[00030]


最新の画像もっと見る