2015-10-23 38 views
1
for i in `seq -w 01 10`; do echo "$i más 1 = $(($i + 1))" ; done 

01 más 1 = 2 
02 más 1 = 3 
03 más 1 = 4 
04 más 1 = 5 
05 más 1 = 6 
06 más 1 = 7 
07 más 1 = 8 
bash: 08: value too great for base (error token is "08") 

for i in `seq 01 10`; do echo "$i más 1 = $(($i + 1))" ; done 

1 más 1 = 2 
2 más 1 = 3 
3 más 1 = 4 
4 más 1 = 5 
5 más 1 = 6 
6 más 1 = 7 
7 más 1 = 8 
8 más 1 = 9 
9 más 1 = 10 
10 más 1 = 11 

這是「一種好方法」嗎?我在bash中創建了一個小腳本,我需要將兩個文件輸入到程序中。第一個文件是foo_02.txt,第二個是foo_01.txt爲什麼「seq -w」在for循環中不起作用,與「seq」相比?

回答

3

在算術表達式,與0開頭數字爲八進制處理,所以他們不能有數字89。而不是使用seq -w,使用printf顯示消息時添加零填充。

for i in `seq 1 10`; do 
    printf "%02d más 1 = %02d\n" $i $((i + 1)) 
done 

%後,0改性劑是指用零墊,以及2意味着字段寬度是2個字符。