我正在尝试printf按照此处的示例使用 bash 连接字符串:
$ printf "%s " "hello printf" "in" "bash script"
Run Code Online (Sandbox Code Playgroud)
以上工作。但是当我尝试将一些破折号 ( -)添加到格式字符串时:
$ printf "--file=%s " "hello printf" "in" "bash script"
Run Code Online (Sandbox Code Playgroud)
它产生一个错误:
sh: printf: --: 无效选项
显然,它将格式字符串视为一个选项。如何-在输出中包含破折号?
(我试图添加 use\-来逃避破折号,但无济于事。)
使用涉及--. 通常,shell 命令需要知道它们的位置参数从哪里开始。因此,通过强制--afterprintf我们让它知道后续参数将被解释为它的参数。此时,之后使用--将按字面意思处理,而不是被视为命令行开关。
所以定义你printf为
printf -- "--file=%s " "hello printf" "in" "bash script"
Run Code Online (Sandbox Code Playgroud)
此外,如果您计划指定多个printf参数字符串,请不要将它们包含在相同的格式说明符中。你可能需要这个
printf -- "--file=%s %s %s" "hello printf" "in" "bash script"
Run Code Online (Sandbox Code Playgroud)
查看更多关于bash 中的 printf 命令
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |