printf命令执行异常求助:第一条正常第二条报错
printf 命令执行差异解析
两条命令的结果差异原因
第一条命令:
printf '%d\n' "'a"
这里的'a'是Shell中表示字符常量的语法,会被解析为字符a对应的ASCII十进制数值(97)。%d格式符专门用于输出整数,因此能正常执行,最终输出97。第二条命令:
printf '%d\n' "a"
这里的"a"是普通字符串,%d格式符要求输入必须是整数类型,无法将纯字符串a转换为整数,所以直接触发报错(报错信息一般是bash: printf: a: invalid number)。
额外提示
如果需要用printf '%d'输出字符的ASCII值,必须让输入被识别为字符常量,除了'a'这种写法,也可以用\x61(十六进制转义)或者\141(八进制转义)配合格式符,比如printf '%d\n' \'a也能得到相同结果。
内容的提问来源于stack exchange,提问作者一无所有
相关产品推荐
相关产品推荐

