linux - 使用 printf 打印 ascii 字符,但 printf 不会打印八进制 100+ 的任何内容

标签 linux printf

我想滚动浏览八进制数字列表并打印出它们的 ASCII 等效值。我可以这样做

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

但是,如果我将范围更改为 64(八进制 100),以打印 @,printf "\0$o\n" 无法识别 3 位八进制代码。

我应该在 printf 中使用什么语法才能打印 3 位八进制数字的 ascii 代码?

最佳答案

根据 sh(1) 联机帮助页,printf 在转义八进制代码时不需要前导 0。很简单 printf '\100'

关于linux - 使用 printf 打印 ascii 字符,但 printf 不会打印八进制 100+ 的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20732376/

相关文章:

linux - 如何调试作为软件中so文件一部分的cpp文件?

php - 在多IP服务器上更改CURL请求的IP地址

c - C99 printf 中的可变前导零

c - 如何使用 Nasm 汇编器使用 C-printf() 仅打印一定数量的字节?

c - 如果 % 在 printf 的格式字符串中没有跟一个合适的字符怎么办?

ruby-on-rails - 在 arm 系统中安装 rails 的问题

linux - Git 服务器 - 自动(重新)推送

linux - Linux Makefile 中的目标文件寻址

c - 警告 : format ‘%s’ expects argument of type ‘char *’ , 但参数 2 的类型为 ‘int’ 使用 argv

c - fprintf 和 ctime 没有从 ctime 传递\n