У меня эта команда уже работает в моем .bash_profile:
alias mysite='cd /Applications/sites/mysite;pwd; php artisan serve --port=9000 | open http://localhost:9000 | open -a Finder ./'
Так что:
- Компакт-диски в папку
- Начинает подавать ремесленника
- Открывает новое окно браузера по этому адресу
- Открывает новое окно 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\""'
Вас это устраивает?