2013-12-22 89 views
0

我想滾動八進制數字列表並打印出它們的ASCII等值。如果我改變的範圍內,以64(八進制100),我可以使用printf打印ascii字符,但printf將不會打印任何東西100+在八進制

i=48 
while [ $i -le 63 ] 
do 
    o=`echo "obase=8; $i" | bc` 
    printf "\0$o\n" 
    i=`expr $i + 1` 
done 

爲此然而,打印@,所述printf "\0$o\n"不能識別3位的八進制代碼。

我應該在printf中使用什麼語法才能打印3位八進制數的ascii碼?

+0

好的我已經整理了它。以下shell處理3位八進制數。我意識到我不需要將printf命令中的數字指定爲Octal。另請注意「雙反斜線」。 i = 48 while [$ i -le 127] do o ='echo「obase = 8; $ i」| | bc' printf「\\ $ o \ n」 i ='expr $ i + 1' done –

回答

0

根據sh(1)聯機幫助頁,printf在轉義八進制代碼時不需要前導0。這只是printf '\100'