以下脚本产生了意外的输出:
printf "escaped slash: \\ \n"
printf "2 escaped slashes: \\\\ \n"
printf "3 escaped slashes: \\\\\\ \n"
printf "4 escaped slashes: \\\\\\\\ \n"
在 Ubuntu 14 下作为 bash 脚本运行,我看到:
escaped slash: \
2 escaped slashes: \
3 escaped slashes: \\
4 escaped slashes: \\
嗯... 什么?
bash
在printf
看到参数之前删除任何反斜杠。 - chepnerbash
扩展FORMAT
字符串(仅当用双引号括起来时!)。2)printf
将ARGUMENTS
和FORMAT
组合成一个字符串。3)最终字符串再次扩展(即\变为\)。4)结果最终被打印出来。 - Eugeniu Rosca