Як я можу тримати термінал відкритим після завершення програми за допомогою запуску для термінальної програми?


24

У мене є термінальна команда, яку я запускаю з програми запуску програм. Це чудово працює, проте іноді команда не працює, тому я хотів би, щоб термінал залишався відкритим, щоб я міг бачити результати. Як я можу це зробити?

Відповіді:


23

Якщо припустити, що ваша команда викликана mycommand, я міняю свій пусковий запуск для виконання цього:

gnome-terminal -e "mycommand|less"

Якщо ви хочете отримати більш постійне, можливо, більш чисте рішення, відкрийте gnome-термінал, перейдіть до редагування, налаштування профілю та перейдіть на вкладку Назва та команда. Змініть параметр "Коли команда завершується" на "Тримайте термінал відкритим".

Коли ви виконуєте команди, він повинен залишати термінал відкритим, коли щось працює.

Редагувати: Якщо вас не цікавить термінал, ви можете просто використати прапор утримування xterm:

xterm -e "mycommand" hold

7
Щоб зберегти термінал за замовчуванням ", коли команда завершується", я пропоную створити новий профіль терміналу, встановити його, щоб він залишався відкритим після завершення команди, і передав --tab-with-profile=PROFILENAMEопцію gnome-terminal . У вас може бути багато профілів для різних поведінки таким чином :-)
інвертувати

1
xterm -hold -e mycommand

8

У вашому запуску працює сценарій, чи не так?

В кінці сценарію додайте

read -p "Press any key to exit > " -n1 junk
echo 

Тоді ваш сценарій буде чекати, поки ви не вирішите його закінчити.


1
+1, і показувати підказку лише в тому випадку, якщо команда не вдасться (повертає ненульовий код виходу), що можна зробитиcommand || read -n1 -p "Command failed. Press any key to exit..."
Jukka Matilainen

8

Використовуйте це у своєму ярлику .desktop

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"

Після закінчення вашого сценарію процес Bash замінить себе новим викликом самого себе.

Якщо вам потрібно передати цитовані аргументи до свого сценарію, вам слід уникнути цитат:

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"

3

Трохи інший підхід від інших відповідей: запустіть свою команду, і якщо це не вдасться, то покладіть оболонку. Таким чином, вам не потрібно тримати термінал відкритим (що не розрізняє успіх команди або відмову), і ви можете виявити цю оболонку особливо корисною при відмові. Щоб закрити його, просто використовуйте Ctrl-D (EOF), "вихід", Alt-F4 (або все, що ваш менеджер вікон використовує для закриття вікон) тощо.

успіх або оболонка

#!/bin/sh
[ $# -eq 0 ] && {
  echo "$(basename $0): no command" >&2
  exit 1
}
"$@" || {
  echo "failed: $?"
  exec $SHELL
}

Помістіть цей файл кудись, наприклад, ~ / bin, а потім використовуйте "success-or-shell your original command" у вашому запуску.


0

Ця відповідь дає найкращу відповідь, яку я бачив досі, робити те, що ви хочете. Вони рекомендують створити скрипт із командами для його виконання та використовувати його з параметром --init-file (конкретний bash, але, ймовірно, ви можете зробити те ж саме для csh / tcsh / zsh тощо):

#!/bin/bash --init-file
commands to run

... і виконати його як:

xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/shebang

0

Використовуйте watchкоманду.

Формат: watch -n60 myCommandабоwatch -n60 "my command string"

  • -nвказано кількість секунд очікування між викликами МояКоманди ; Наприклад : вищезазначена команда буде викликати myCommand кожні 60 секунд, назавжди.
  • Якщо команда з декількох слів, поставити його в подвійні лапки: "my command string".

Скажімо, ви хочете Launcher, який відображає використання диска, і залишається відкритим для бачення читача. Я просто використав би цю команду всередині Launcher:,
watch -n60 "df -h"яка дзвонить df -hзараз кожні 60 секунд.

Мені це подобається за прийнятою відповіддю, gnome-terminal -e "mycommand|less"оскільки я використовую Xubuntu, який за замовчуванням використовує інший термінал.


0

Спробуйте клацнути правою кнопкою миші панель запуску та введіть властивості.

Повинна бути можливість зберігати вікно терміналу відкритим введіть тут опис зображення

У файлі .desktop має бути запис X-KeepTerminal=true

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.