我有一个具有行一个bash shell脚本:
g=$(/bin/printf ${i})
时${i}
包含的东西像-6
,printf
认为它通过了一个选项。它无法识别该选项,因此会产生错误。
如果将${i}
用引号引起来,printf
仍然认为它通过了一个选项。
g=$(/bin/printf "${i}")
如果我逃跑的报价,可变$g
然后持有“-6
”,这是不是我想要的任何。
g=$(/bin/printf \"${i}\")
是否有逃跑的破折号( - )。
的printf是BusyBox的应用程序使用--
作为分隔符告诉程序,所有其它参数不是选项
这个工程 - 虽然我认为这是脚本不做的原因这已经。因为它可以简单地使用回声。然而,它现在可行,但如果任何人作为更好的解决方案,我会感兴趣。 – Andrew 2009-10-23 15:19:15
那么,如果它只是%d的问题......那么你可以只做'g = $ i'并且完成而不需要调用另一个进程。 – ndim 2009-10-23 15:23:23
$ {i}可以是任何东西,数字,字符串等。任何以' - '开头的值都会导致printf失败。 – Andrew 2009-10-23 15:32:10