为何Bash的printf函数无法打印‘--’字符?如何解决?
问题原因
Bash 的 printf 命令会将以 -- 开头的参数识别为选项终止符,用来告知命令后续内容不再作为选项解析。但当你直接执行 printf "--" 时,printf 会判定你仅提供了选项终止符,却未传入它必需的格式字符串参数,因此抛出用法错误提示。
解决方法
有两种简单可行的解决方式:
方法一:用额外的
--终止选项解析
在要打印的--前多传一个--,明确告诉printf后面的内容是格式字符串而非选项:printf -- "--"方法二:使用格式占位符指定输出
将--作为参数传给格式字符串%s,让printf直接输出该参数内容,避免被识别为选项:printf "%s" "--"
内容的提问来源于stack exchange,提问作者Redshoe
相关产品推荐
相关产品推荐

