【发布时间】:2018-12-13 14:29:59
【问题描述】:
我不小心写了:
printf "here: %s $d\n" "${line:0:32}" "${#line}"
得到:
here: /home/gsamaras/Bash/libs/goodLib
here: 103
为什么?
当然我的意思是说%d,但我不理解我犯的错误中的这种行为。我可能希望它打印“这里:/home/gsamaras/Bash/libs/goodLib $d”,就像它会 do in C... 我找不到重复的东西或其他东西那就是问题所在。
【问题讨论】:
-
@Biffen 我喜欢在 C 和 C++ 中使用双引号和带有单引号范式的字符串,但我明白你的意思,谢谢你的提示! RockyLi,我明白了,但仍然不清楚为什么我会两次“在这里”......
-
@gsamaras 这个就不拖了,但是C和Bash是不同的语言,单引号和双引号在两者中分别代表不同的含义。我一般不建议在这样的语言之间迁移范式。
标签: string bash printf format-specifiers