在CLI参数中使用单引号或双引号

时间:2016-04-29 10:45:41

标签: shell

我编写了一个必须通过CLI执行的简单php脚本,它需要两个参数。

/usr/local/bin/php myscipt.php arg1 arg2

它运作良好,但如果我放了像

这样的东西
/usr/local/bin/php myscipt.php ar"g1 arg2

/usr/local/bin/php myscipt.php ar"g1 ar'g2

它不会像我想的那样处理这个论点,我该怎么解决这个问题。

2 个答案:

答案 0 :(得分:1)

您应该运行Linux shell或类似的。引号是shell语法的一部分。所以你需要逃脱它们。

在shell中转义字符的方式取决于软件。但是大多数都支持使用反斜杠,单引号或双引号进行转义,例如:

php script.php \'string\' 'word1 word2 word3'
php script.php "word $shell_variable"

详细了解quoting variablesescaping

答案 1 :(得分:0)

请问我! 我想你不明白我的意思。 所以我会尝试解释更多。 命令行的真正语法是

/usr/local/bin/php script1.php arg1 arg2 arg3

这样的论点不应包含"或者' 问题是:如何在脚本中对待" script1.php" "或者'所以要纠正它们或将它们抹掉。

感谢