Команда-псевдоним из терминала, которая открывает новый терминал в определенной папке

Команда-псевдоним из терминала, которая открывает новый терминал в определенной папке

У меня эта команда уже работает в моем .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\""'

Вас это устраивает?

Связанный контент