Я попытался это:Как избежать цитат в bash?
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"
работает в консоли.
Этот вопрос был дан здесь: http://stackoverflow.com/questions/35586627/how-to-escape-double-quotes-in-bash – Dustin
Экранирование кавычек делает их данными, а не синтаксисом. Если вы буквально не хотите, чтобы кавычки обрабатывались как данные командой open (что, я вам обещаю, вы этого не делаете), вы ** не хотите, чтобы ** избегали кавычек. Вместо этого вам следует избегать расширения. –
@theman, он делает то, о чем вы просите; это просто не то, что вы ** хотите **. Это ускользает от кавычек, о чем вы спрашиваете, как это сделать, но если вы хотите, чтобы 'open' работал правильно, то эти цитаты ** не должны быть экранированы. –