Відповіді:
Якщо припустити, що ваша команда викликана mycommand
, я міняю свій пусковий запуск для виконання цього:
gnome-terminal -e "mycommand|less"
Якщо ви хочете отримати більш постійне, можливо, більш чисте рішення, відкрийте gnome-термінал, перейдіть до редагування, налаштування профілю та перейдіть на вкладку Назва та команда. Змініть параметр "Коли команда завершується" на "Тримайте термінал відкритим".
Коли ви виконуєте команди, він повинен залишати термінал відкритим, коли щось працює.
Редагувати: Якщо вас не цікавить термінал, ви можете просто використати прапор утримування xterm:
xterm -e "mycommand" hold
У вашому запуску працює сценарій, чи не так?
В кінці сценарію додайте
read -p "Press any key to exit > " -n1 junk
echo
Тоді ваш сценарій буде чекати, поки ви не вирішите його закінчити.
command || read -n1 -p "Command failed. Press any key to exit..."
Використовуйте це у своєму ярлику .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"
Трохи інший підхід від інших відповідей: запустіть свою команду, і якщо це не вдасться, то покладіть оболонку. Таким чином, вам не потрібно тримати термінал відкритим (що не розрізняє успіх команди або відмову), і ви можете виявити цю оболонку особливо корисною при відмові. Щоб закрити його, просто використовуйте 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" у вашому запуску.
Ця відповідь дає найкращу відповідь, яку я бачив досі, робити те, що ви хочете. Вони рекомендують створити скрипт із командами для його виконання та використовувати його з параметром --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
Використовуйте 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, який за замовчуванням використовує інший термінал.
--tab-with-profile=PROFILENAME
опцію gnome-terminal . У вас може бути багато профілів для різних поведінки таким чином :-)