Я установил Terminator на свою Ubuntu и сохранил свой собственный макет с 5 терминальными окнами. Теперь я хочу выполнить скрипт оболочки в каждом окне. Проблема в том, что когда скрипт завершает работу, окно терминала становится бесполезным, так как больше нет командной строки. Т.е. я могу сохранить свой макет и поместить команду "top" в конфигурацию макета. В следующий раз, когда я запускаю Terminator «terminator -m -l mylayout &», он открывает мой макет, выполняет команду «top» в соответствующем суб-терминале, но если я нажимаю «q», чтобы выйти из «top», которого у терминала нет командная строка больше. Есть ли способ это исправить? И есть ли способ передавать команды в окна терминала внутри макета Terminator из отдельного окна терминала gnome?
Я также хотел запустить сессию Терминатора путем выполнения сценария и затем запуска оболочки удара. Это - то, как я сделал это:
В Предпочтениях Терминатора, на вкладке 'Layouts', выбирают желаемое Расположение слева и затем выбирают желаемый Терминал справа.
В поле 'Custom command', введите команду, сопровождаемую && bash || bash
. Это будет инициировать новую оболочку удара, была ли команда/сценарий успешна или нет.
bash
после &&
выполнится после успешного кода выхода (0). bash
после ||
выполняется после ошибочного кода выхода (1-255).
Пример: Чтобы выполниться top
и затем выйти в новую оболочку удара, введите это в поле 'Custom command'.
top && bash || bash
Другой пример: Скажите необходимость в некоторой поддержке для получения, день начался на правой ноге.
echo -e "\nWelcome! You are going to have a productive day!\n" && bash || bash
Затем для выполнения определенной команды, запускают разделитель с -l
опция, сопровождаемая именем расположения.
terminator -l mylayout
Можно использовать пользовательский профиль для терминалов, Вы хотите сохранить открытыми после выходов команды. Посмотрите Профиль, вкладку Command в Prefs. У Вас могут или быть они, просто содержат открытый, пока Вы явно не закрываете их, или Вы можете сделать, чтобы они перезапустили команду (или удар или пользовательская команда.)
Другой прием, который я недавно изучил, должен использовать следующее в качестве Вашей пользовательской команды:
bash --rcfile <(echo ". ~/.bashrc && ls -l")
Это получает Ваш запуск удара, выполняет команду (ls), затем вносит Вас в том же процессе удара. Это немного лучше, чем практика лавирующего удара на конце команды.
sudo apt-get remove .*:armhf
, после которого dpkg удалил внешнюю архитектуру. Спасибо значительно.
– fastsailing
15 December 2015 в 14:17
Я знаю, что это более старый вопрос, но я потратил некоторое время, пытаясь понять его сегодня, и ничего из этого не помогло мне. Я наткнулся на этот пост в блоге , который сделал именно то, что мне нужно. Так что я решил, что поделюсь.
По сути, вы добавляете этот фрагмент в свой .zshrc
или .bashrc
:
echo $INIT_CMD
if [ ! -z "$INIT_CMD" ]; then
OLD_IFS=$IFS
setopt shwordsplit
IFS=';'
for cmd in $INIT_CMD; do
print -s "$cmd" # add to history
eval $cmd
done
unset INIT_CMD
IFS=$OLD_IFS
fi
И затем вы устанавливаете его в качестве своей собственной команды:
env INIT_CMD="cd bla; export PYTHONPATH=/tmp; workon project" zsh
Это позволяет вам строить несколько команды вместе, а затем, когда вы завершите постоянную команду с помощью Ctrl + C , терминал останется открытым.