Bu çalıştı. Nasıl başarabilirim? Burada bu komut dosyası için :Bash'taki alıntılar nasıl kaçar?</p> <pre><code>a=""Google Chrome"" </code></pre> <p>ve ben <pre><code>a="'Google Chrome'" </code></pre> <p></p> ama hiçbir gitmek çalıştı:
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
}
bir argüman olarak "Google Chrome" tedavi yalnızca Chrome bölümünü okuyup değil tutmak gibi görünüyor.
Örneğin, konsolda open -a "Google Chrome"
çalışır.
Bu soru burada yanıtladı: http://stackoverflow.com/questions/35586627/how-to-escape-double-quotes-in-bash – Dustin
Aktarılan alıntılar, sözdizimini değil, veri yapar. Tam anlamıyla tırnak işareti, açık komut tarafından veri olarak ele alınmasını istemediğiniz sürece (ki size söz veriyorum, siz), ** ** tırnakların kaçmasını istemezsiniz. Bunun yerine, genişlemeden kaçmalısın. –
@theman, istediğini yapar; Bu sadece ** istediğin şey değil **. Nasıl yapılacağını sorduğun alıntılardan kaçar, ama eğer 'open''in doğru şekilde çalışmasını istiyorsanız, o tırnaklar ** ** kaçmamalı. –