Новая вкладка gnome-terminal с псевдонимом как команда для выполнения

Я создал псевдоним в файле .bashrc следующим образом

alias myproject = 'cd ~/Desktop/myproject'

После сохранения файла при перезагрузке терминала введите myproject в каталог проекта, но когда я попытаюсь использовать псевдоним в качестве аргумента команды на новой вкладке gnome-terminal, он выдает ошибку,

gnome-terminal --tab -e "myproject"

выдает ошибку

There was an error creating the child process for this terminal
Failed to execute child process "myproject" (No such file or directory)

Что не так с этим?

Ответ 1

Когда запускается оболочка bash, по умолчанию bash выполняет команды, указанные в .bashrc. Вот как ваша оболочка знает ваши alias es.

Теперь ваша идея не работает, потому что gnome-terminal никогда не видит ваш файл .bashrc.

Вы можете попробовать

gnome-terminal --working-directory='<path-to-your-home-directory>/Desktop/myproject/

Ответ 2

Я пытался сделать что-то подобное... возможно, не совсем то, что вы хотите, но:

alias startMyRailsProject='cd ~/Desktop/myproject; gnome-terminal --tab --tab -e "rails s" --tab -e "rails c"; exit'

Это:  - меняет каталог, куда я хочу  - запускает новый терминал gnome (в правильном каталоге ранее)  - создает вторую вкладку и запускает мой сервер rails  - создает третью вкладку и запускает консоль моих рельсов  - а затем закрывает исходное окно терминала, из которого я его вызываю.
Он делает то, что мне нужно, и сохраняет кучу повторяющихся нажатий клавиш :-) ура

Ответ 3

Насколько я знаю, gnome-terminal, похоже, использует определенный файл с именем .alias в домашнем каталоге, чтобы сохранить постоянные псевдонимы. Я обнаружил это, читая строку test -s ~/.alias && . ~/.alias || true в моем файле .bashrc. Итак, что было трюком в моем случае

  • Создание файла .alias в моем доме
  • Редактирование этого файла для включения строки alias myproject = 'cd ~/Desktop/myproject'
  • Перезагрузка моего терминала

Ответ 4

Мне удалось заставить некоторые из них работать, мне не хватает моих псевдонимов, но я могу запустить нужную программу следующим образом:

gnome-terminal --window --title="testtitle" -- $SHELL -c "<path to script/application>/<script/application> <arguments>;"

Пример:

gnome-terminal --window --wait --title="testtitle" -- $SHELL -c "echo test;read -p \"press any key to exit\" -n 1 ;"