我使用了一个脚本来为我设置虚拟主机,然后使用 safari 打开 url,但是,我正在尝试更改脚本,以便它在 Google Chrome 中打开。
这条线给我带来了问题。
OPEN_COMMAND="/usr/bin/open -a /Applications/Google Chrome.app"
Run Code Online (Sandbox Code Playgroud)
我也试过...
OPEN_COMMAND="/usr/bin/open -a /Applications/Google\ Chrome.app"
Run Code Online (Sandbox Code Playgroud)
..和...
OPEN_COMMAND="/usr/bin/open -a /Applications/'Google Chrome.app'"
Run Code Online (Sandbox Code Playgroud)
错误提示文件不存在。
这是在脚本底部使用命令的地方...
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Launch the new URL in the browser
#
/bin/echo -n "Launching virtualhost... "
$OPEN_COMMAND http://$VIRTUALHOST/
/bin/echo "done"
Run Code Online (Sandbox Code Playgroud)
该脚本托管在这里:http : //code.google.com/p/virtualhost-sh/
请参阅BashFAQ #50 -- 在设置有效的命令变量时,您无法进行任何形式的引用/转义,因为在使用后,它会被分解为单词,而不管它可能包含哪些引号、转义等. 但是,有几种方法可以更改定义和调用以使其工作(大致按从最灵活到最不灵活的顺序):
使用 shell 函数而不是变量:
open_command() { open -a "/Applications/Google Chrome.app" "$@"; }
open_command "http://$VIRTUALHOST/"
Run Code Online (Sandbox Code Playgroud)
使用数组而不是简单的变量:
open_command=( open -a "/Applications/Google Chrome.app" )
"${open_command[@]}" "http://$VIRTUALHOST/"
Run Code Online (Sandbox Code Playgroud)
使用单独的变量(就像 mugen kenichi 建议的那样,但变量名不会破坏 PATH):
open_command="open -a"
open_app="/Applications/Google Chrome.app"
$open_command "$open_app" "http://$VIRTUALHOST/"
Run Code Online (Sandbox Code Playgroud)
(请注意,最后一个不会让您退回到使用默认浏览器——没有什么好方法可以放弃应用程序。)