我有一个 bash shell 脚本,其中包含以下行:
g=$(/bin/printf ${i})
当 ${i}
包含类似 -6
的内容时,printf
认为它被传递了一个选项。它无法识别该选项,因此会产生错误。
如果将 ${i}
括在引号中,printf
仍然认为它被传递了一个选项。
g=$(/bin/printf "${i}")
如果我转义引号,变量 $g
就会保存“-6
”,这也不是我想要的。
g=$(/bin/printf \"${i}\")
有没有逃避破折号(-)。
printf 是一个 BusyBox 应用程序
最佳答案
大多数 GNU 程序支持使用 --
作为分隔符来告诉程序所有进一步的参数都不是选项。例如
$ printf -- -6
-6
关于bash - 我如何让 $(/bin/printf -6) 返回 -6 而不是认为 -6 是一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1614028/