2013-12-22 54 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'