我的 .bash_profile 中已经有一个该命令在运行:
alias mysite='cd /Applications/sites/mysite;pwd; php artisan serve --port=9000 | open http://localhost:9000 | open -a Finder ./'
所以:
- 将 CD 放入文件夹中
- 开始手工服务
- 在该地址打开一个新的浏览器窗口
- 在同一位置打开新的 Finder 窗口
我希望它做的是添加一个新命令来执行类似以下操作:
open -a Terminal cd /Applications/sites/mysite
因此它会打开一个新的终端窗口,然后将该新终端窗口 cd 到同一个文件夹。
有可能吗?我试过这个:
alias mysite='cd /Applications/sites/mysite;pwd; php artisan serve --port=9000 | open http://localhost:9000 | open -a Finder ./ | open -a Terminal cd /Applications/sites/mysite'
但我无法让它工作。它像第一个示例中一样执行所有操作,但从不打开新的终端窗口 :(
提前致谢!
答案1
我不认为你的命令的最后一部分(open -a Terminal cd /Applications/sites/mysite
)起作用,因为参数没有被传递作为命令执行,请参阅类似的问题这里。
一个解决方法是使用 AppleScript 来完成最后一部分:
osascript -e 'tell application "Terminal" to do script "cd /Applications/sites/mysite"'
要将其包含在别名定义中,请确保所有单/双引号匹配并在必要时转义:
alias mysite='cd /Applications/sites/mysite; pwd; php artisan serve --port=9000 | open http://localhost:9000 | open -a Finder ./ | osascript -e "tell application \"Terminal\" to do script \"cd /Applications/sites/mysite\""'
那对你有用吗?