首页 > 解决方案 > Bash 中的输出格式

问题描述

echo "Station pairs are $station1($code1) and $station2($code2) | distance=$c degrees or `echo $c|awk '{print $1*111.2}'` km"

我在 bash 中的“for”循环中运行上述代码。变量“station1”、“code1”、“station2”、“code2”在每次循环迭代后都会发生变化,它给了我这样的输出:

Station pairs are Zhozho2(WT15) and Guoban(WT19) | distance=1.4755108271 degrees or 164.077 km
Station pairs are Zhozho2(WT15) and Yarla(WT20) | distance=1.63208637417 degrees or 181.488 km
Station pairs are Zhozho2(WT15) and Zhungba(ZNBA) | distance=1.28887286927 degrees or 143.323 km
Station pairs are Hill(WT16) and N-Napuk(WT17) | distance=1.22929482902 degrees or 136.698 km
Station pairs are Hill(WT16) and Zhungba(ZNBA) | distance=1.87133807827 degrees or 208.093 km
Station pairs are N-Napuk(WT17) and Barkar(WT18) | distance=1.73933270787 degrees or 193.414 km

如何以我的输出如下所示的方式打印这些行:

Station pairs are Zhozho2(WT15)  and Guoban(WT19)  | distance=1.4755108271   degrees or 164.077 km
Station pairs are Zhozho2(WT15)  and Yarla(WT20)   | distance=1.63208637417  degrees or 181.488 km
Station pairs are Zhozho2(WT15)  and Zhungba(ZNBA) | distance=1.28887286927  degrees or 143.323 km
Station pairs are Hill(WT16)     and N-Napuk(WT17) | distance=1.22929482902  degrees or 136.698 km
Station pairs are Hill(WT16)     and Zhungba(ZNBA) | distance=1.87133807827  degrees or 208.093 km
Station pairs are N-Napuk(WT17)  and Barkar(WT18)  | distance=1.73933270787  degrees or 193.414 km

标签: linuxbashubuntuunix

解决方案


先将变长字符串放入一个temp变量中,然后用printf格式化的方式输出:

temp=$station1($code1)
printf 'Station pairs are %-15s and ...\n' $temp

推荐阅读