bash - 我如何让 $(/bin/printf -6) 返回 -6 而不是认为 -6 是一个选项

标签 bash shell printf busybox

我有一个 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/

相关文章:

bash/shell : How to remove duplicates from csv file by columns?

C - 我的程序从文件读取后打印奇怪的东西

c - 使用 %d 与 %ld 打印 pid,linux

python - 如何在执行过程中不提供输入的情况下运行 aws-nuke?

linux - linux shell 中的减法 if

linux - Gitlab rake 备份时间戳到别的东西

c - 后台进程在终止前捕获进程 ID

java - 在 printf() 或 format() 中添加新行

bash - 使用 sed 将文件名中的数值填充为三位数

linux - 在linux中使用sed命令更改变量值