Откройте терминал gnome программно и выполните команды после выполнения bashrc - PullRequest
3 голосов
/ 09 октября 2010

Я пытаюсь создать небольшой скрипт для запуска среды разработки.Для этой задачи я пытаюсь открыть терминал gnome с несколькими вкладками, где автоматически запускается сервер rails и автотест.Но

gnome-terminal --tab -e "rails server" --tab --tab

не работает («ошибка при создании дочернего процесса»).Также

gnome-terminal --tab -e "bash -c \"rails server\"" --tab --tab` 

не работает.Любые предложения, как решить эту проблему?

Ответы [ 5 ]

13 голосов
/ 11 октября 2010

Вот хороший трюк, который мы разработали на Суперпользователь

  1. Добавьте eval "$BASH_POST_RC" в конец вашего .bashrc

  2. Установите переменную среды BASH_POST_RC для каждой вкладки для той команды, которую вы хотите выполнить, например: gnome-terminal --working-directory="/home/zardoz/projects/my_rails_app" --tab -e 'bash -c "export BASH_POST_RC=\"rails server\"; exec bash"' --tab -e 'bash -c "export BASH_POST_RC=\"autotest\"; exec bash"'

@ Жиль : Спасибо за это решение!

1 голос
/ 09 октября 2010

Stab in the dark: создайте сценарии оболочки для каждой команды, которую вы хотите запустить на вкладке, сделайте их исполняемыми и вызовите их по абсолютному пути, например, введите это в /home/zardoz/bin/railsstart

#! /bin/sh
exec rails server

chmod +x it, а затем выполните

gnome-terminal --tab -e /home/zardoz/bin/railsstart --tab --tab ...

Если это не сработает, я бы попробовал в следующий раз вставить strace -f -o /tmp/trace.log в начало команды, дать ей сбоить и затем копать trace.log, чтобы выяснить, какой системный вызов действительно потерпел неудачу и почему (там будет огромное количество мусора - читайте с конца в обратном направлении и ищите все заглавные фразы, начинающиеся с E, такие как "ENOEXEC", "ENOENT", «EPERM», вроде того.)

РЕДАКТИРОВАТЬ: Вот как вы вводите все настройки .bashrc в одном из этих сценариев:

#! /bin/bash
. ~/.bashrc
exec rails server

Внимание: вам может понадобиться настроить .bashrc так, чтобы он не делал определенные вещи, которые работают только в «реальном» сеансе интерактивной оболочки.Не беспокойтесь об этом, если только вы не получили странные ошибки до запуска рельсов.

0 голосов
/ 27 февраля 2017

для Ubuntu 16.04

нажмите Ctr+Shift+T

откроется новая вкладка в том же окне. дополнительно кнопка для добавления дополнительных вкладок появится рядом с самой правой вкладкой.

0 голосов
/ 29 декабря 2012

Уже ответил, но на всякий случай проверьте этот гем , который автоматизирует терминал на рабочих столах KDE, OSX и Gnome.

0 голосов
/ 10 октября 2010

Я предполагаю, что ошибка возникает из-за того, что PATH не установлен в то время, когда gnome-терминал пытается запустить rails.

Почему бы не использовать полный путь к серверу rails или создать скрипт, который устанавливает переменную PATH?

...