debian8@debian:~$ awk 'BEGIN{system("printf %xn 32")}'
20ndebian8@debian:~$
请看下面
printf %x\n 32
20ndebian8@debian:~$
awk 'BEGIN{system("printf %x\n 32")}'
0sh: 2: 32: not found
请问,这里的 awk 'BEGIN{system("printf %x\n 32")}' 为何会有这个结果?
问题没有这么简单哈,再请看
debian8@debian:~$ awk 'BEGIN{system("printf %x\\n 32")}'
20ndebian8@debian:~$
如何解释?
请参考linux的
system()
函数的说明.\n
在双引号里面的时候代表换行符,即system("printf %x\n 32")
相当于你在命令行里面先后敲了两个命令:printf %x
32
对于最后的结果
0sh: 2: 32: not found
可以拆分为三部分理解0
是printf %x
的运行结果sh: 2:
是print %x
的返回说明32: not found
是32
的运行报错结果可以使用
system("printf %x 32\n")
来试试,就能正确运行无错误