for
ループ内では、次を使用します。
echo " Job_time is $i : Stopping the job "
出力例:
Job_time is 6 : Stopping the job
Job_time is 6.50 : Stopping the job
希望の出力:
Job_time is 6 : Stopping the job
Job_time is 6.50 : Stopping the job
答え1
echo
printf
代わりに、特定のフィールドの幅を指定できます。与えられた例では
echo " Job_time is $i : Stopping the job "
そして
printf ' Job_time is %-4s : Stopping the job \n' "$i"
$i
明らかに長さが異なる文字列だからです。常に有効な浮動小数点数の場合は、数値書式を使用して次のprintf
ゼロを表示できます。
printf ' Job_time is %4.2f : Stopping the job \n' "$i"
例えば、
Job_time is 6.00 : Stopping the job
Job_time is 6.50 : Stopping the job
追加資料:
- printfコマンド(Bash Wiki)
- printf - フォーマットされた出力を書き込みます。(POSIX)
答え2
stopping the job
常に14列から印刷を開始してください。
for ((i=0; i<100; i++))
do
local offset=14
printf "%s%*s\n" "Job_time is $i" $offset ": Stopping the job"
done