【发布时间】:2016-07-10 03:26:07
【问题描述】:
我试过这个:
a="\"Google Chrome\""
我试过了
a="'Google Chrome'"
但是不行。 我怎样才能完成? 对于这里的脚本:
birthBrowser(){
local a
if [ $# -eq 0 ]
then
a="Google Chrome"
fi
if [ $# -eq 1 ]
then
a="$1"
fi
if [ $# -gt 1 ]
then
a="$1"
echo "Too many arguments"
fi
open -a $a
}
它似乎一直只阅读 Chrome 部分,而不是将“Google Chrome”作为一个论据。
例如 open -a "Google Chrome" 在控制台中工作。
【问题讨论】:
-
这里已经回答了这个问题:stackoverflow.com/questions/35586627/…
-
转义引号使它们成为数据,而不是语法。除非您真的希望引号被 open 命令视为数据(我向您保证,您不会这样做),否则您 不想 转义引号。相反,您应该逃避扩展。
-
@theman,它可以满足您的要求;这不是您想要的。它转义了引号,这就是您要问的方法,但是如果您希望
open正常工作,那么这些引号不应转义。 -
顺便说一句,如果您想自动检查此类错误,请参阅shellcheck.net