У меня есть команда терминала, которую я запускаю из запуска приложения. Это отлично работает, однако иногда команда терпит неудачу, поэтому я хочу, чтобы терминал оставался открытым, чтобы я мог видеть результаты. Как я могу это сделать?
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -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; ex: вышеуказанная команда будет вызывать myCommand каждые 60 секунд, навсегда. Если команда несколько слов, поместите ее в двойные кавычки: "my command string".Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я просто использовал эту команду в Launcher: watch -n60 "df -h", которая называет df -h сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e "mycommand|less", потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
В ярлыке .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"
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Press any key to exit > " -n1 junk
echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
несколько иной подход от других ответов: выполнить вашу команду и если это не удается, то запустить командный интерпретатор. Таким образом, Вы не должны держать открытым терминал (который не различает между успехом команды или неудача), и вы, возможно, обнаружите, что скорлупа особенно полезна в провал. Чтобы закрыть его, просто используйте сочетание клавиш Ctrl-д (ВФ), "выход", нажатие Alt-F4 (или независимо от вашего оконного менеджера используется для закрытия окна) и т. д.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
место этот файл где-нибудь, такие как ~/bin, затем использовать "успех-или-оболочки вашей оригинальной команды" в программе запуска.
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -init-file (специфичный для bash, но вы, вероятно, могли бы сделать то же самое для csh / tcsh / zsh и т. Д.):
#! / bin / bash --init-file для запуска
... и выполнить его как:
xterm -e / path / to / script # или gnome-terminal -e / path / to / script # или the-terminal -e bash --init-файл / путь / в / script / с / no / shebang
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Нажмите любую клавишу, чтобы выйти & gt;" -n1 junk echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
Немного другой подход от других ответов: запустите свою команду, и если это не удастся, запустите оболочку. Таким образом, вам не нужно открывать терминал (который не различает успех команды или отказ), и вы можете обнаружить, что оболочка особенно полезна при сбое. Чтобы закрыть его, просто используйте Ctrl-D (EOF), «exit», Alt-F4 (или что-то, что ваш оконный менеджер использует для закрытия окон) и т. Д.
#! / bin / sh [$ # -eq 0] & amp; & amp; & amp; & amp; {echo "$ (basename $ 0): no command" & gt; & amp; 2 exit 1} "$ @" || {echo "не удалось: $?" exec $ SHELL}
Поместите этот файл где-нибудь, например ~ / bin, а затем используйте команду «success-or-shell your original command» в вашей пусковой установке. [ ! d4]
В ярлыке .desktop используйте этот
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT; exec $ SHELL"
After ваш скрипт закончен, процесс Bash заменит себя новым вызовом самого себя.
Если вам нужно передать цитированные аргументы в свой скрипт, вам нужно избежать кавычек:
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT \" arg with spaces \ "; exec $ SHELL"
Используйте команду watch
.
Формат: watch -n60 myCommand
или watch -n60 «моя командная строка»
-n
задал количество секунд ожидания между вызовами myCommand ; ex: вышеуказанная команда будет называть myCommand каждые 60 секунд, навсегда. «моя командная строка»
. Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я бы просто использовал эту команду в Launcher: watch -n60 "df -h"
, который вызывает df -h
сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e «mycommand | less»
, потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
Немного другой подход от других ответов: запустите свою команду, и если это не удастся, запустите оболочку. Таким образом, вам не нужно открывать терминал (который не различает успех команды или отказ), и вы можете обнаружить, что оболочка особенно полезна при сбое. Чтобы закрыть его, просто используйте Ctrl-D (EOF), «exit», Alt-F4 (или что-то, что ваш оконный менеджер использует для закрытия окон) и т. Д.
#! / bin / sh [$ # -eq 0] & amp; & amp; & amp; & amp; {echo "$ (basename $ 0): no command" & gt; & amp; 2 exit 1} "$ @" || {echo "не удалось: $?" exec $ SHELL}
Поместите этот файл где-нибудь, например ~ / bin, а затем используйте команду «success-or-shell your original command» в вашей пусковой установке. [ ! d4]
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Нажмите любую клавишу, чтобы выйти & gt;" -n1 junk echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
В ярлыке .desktop используйте этот
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT; exec $ SHELL"
After ваш скрипт закончен, процесс Bash заменит себя новым вызовом самого себя.
Если вам нужно передать цитированные аргументы в свой скрипт, вам нужно избежать кавычек:
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT \" arg with spaces \ "; exec $ SHELL"
Используйте команду watch
.
Формат: watch -n60 myCommand
или watch -n60 «моя командная строка»
-n
задал количество секунд ожидания между вызовами myCommand ; ex: вышеуказанная команда будет называть myCommand каждые 60 секунд, навсегда. «моя командная строка»
. Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я бы просто использовал эту команду в Launcher: watch -n60 "df -h"
, который вызывает df -h
сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e «mycommand | less»
, потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -init-file (специфичный для bash, но вы, вероятно, могли бы сделать то же самое для csh / tcsh / zsh и т. Д.):
#! / bin / bash --init-file для запуска
... и выполнить его как:
xterm -e / path / to / script # или gnome-terminal -e / path / to / script # или the-terminal -e bash --init-файл / путь / в / script / с / no / shebang
В ярлыке .desktop используйте этот
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT; exec $ SHELL"
After ваш скрипт закончен, процесс Bash заменит себя новым вызовом самого себя.
Если вам нужно передать цитированные аргументы в свой скрипт, вам нужно избежать кавычек:
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT \" arg with spaces \ "; exec $ SHELL"
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Нажмите любую клавишу, чтобы выйти & gt;" -n1 junk echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
Немного другой подход от других ответов: запустите свою команду, и если это не удастся, запустите оболочку. Таким образом, вам не нужно открывать терминал (который не различает успех команды или отказ), и вы можете обнаружить, что оболочка особенно полезна при сбое. Чтобы закрыть его, просто используйте Ctrl-D (EOF), «exit», Alt-F4 (или что-то, что ваш оконный менеджер использует для закрытия окон) и т. Д.
#! / bin / sh [$ # -eq 0] & amp; & amp; & amp; & amp; {echo "$ (basename $ 0): no command" & gt; & amp; 2 exit 1} "$ @" || {echo "не удалось: $?" exec $ SHELL}
Поместите этот файл где-нибудь, например ~ / bin, а затем используйте команду «success-or-shell your original command» в вашей пусковой установке. [ ! d4]
Используйте команду watch
.
Формат: watch -n60 myCommand
или watch -n60 «моя командная строка»
-n
задал количество секунд ожидания между вызовами myCommand ; ex: вышеуказанная команда будет называть myCommand каждые 60 секунд, навсегда. «моя командная строка»
. Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я бы просто использовал эту команду в Launcher: watch -n60 "df -h"
, который вызывает df -h
сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e «mycommand | less»
, потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -init-file (специфичный для bash, но вы, вероятно, могли бы сделать то же самое для csh / tcsh / zsh и т. Д.):
#! / bin / bash --init-file для запуска
... и выполнить его как:
xterm -e / path / to / script # или gnome-terminal -e / path / to / script # или the-terminal -e bash --init-файл / путь / в / script / с / no / shebang
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Нажмите любую клавишу, чтобы выйти & gt;" -n1 junk echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
Немного другой подход от других ответов: запустите свою команду, и если это не удастся, запустите оболочку. Таким образом, вам не нужно открывать терминал (который не различает успех команды или отказ), и вы можете обнаружить, что оболочка особенно полезна при сбое. Чтобы закрыть его, просто используйте Ctrl-D (EOF), «exit», Alt-F4 (или что-то, что ваш оконный менеджер использует для закрытия окон) и т. Д.
#! / bin / sh [$ # -eq 0] & amp; & amp; & amp; & amp; {echo "$ (basename $ 0): no command" & gt; & amp; 2 exit 1} "$ @" || {echo "не удалось: $?" exec $ SHELL}
Поместите этот файл где-нибудь, например ~ / bin, а затем используйте команду «success-or-shell your original command» в вашей пусковой установке. [ ! d4]
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -init-file (специфичный для bash, но вы, вероятно, могли бы сделать то же самое для csh / tcsh / zsh и т. Д.):
#! / bin / bash --init-file для запуска
... и выполнить его как:
xterm -e / path / to / script # или gnome-terminal -e / path / to / script # или the-terminal -e bash --init-файл / путь / в / script / с / no / shebang
Используйте команду watch
.
Формат: watch -n60 myCommand
или watch -n60 «моя командная строка»
-n
задал количество секунд ожидания между вызовами myCommand ; ex: вышеуказанная команда будет называть myCommand каждые 60 секунд, навсегда. «моя командная строка»
. Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я бы просто использовал эту команду в Launcher: watch -n60 "df -h"
, который вызывает df -h
сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e «mycommand | less»
, потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
В ярлыке .desktop используйте этот
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT; exec $ SHELL"
After ваш скрипт закончен, процесс Bash заменит себя новым вызовом самого себя.
Если вам нужно передать цитированные аргументы в свой скрипт, вам нужно избежать кавычек:
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT \" arg with spaces \ "; exec $ SHELL"
Ваша пусковая установка запускает скрипт правильно?
В конце вашего скрипта добавьте
read -p "Нажмите любую клавишу, чтобы выйти & gt;" -n1 junk echo
Тогда ваш скрипт будет ждать, пока вы решите его закончить.
Немного другой подход от других ответов: запустите свою команду, и если это не удастся, запустите оболочку. Таким образом, вам не нужно открывать терминал (который не различает успех команды или отказ), и вы можете обнаружить, что оболочка особенно полезна при сбое. Чтобы закрыть его, просто используйте Ctrl-D (EOF), «exit», Alt-F4 (или что-то, что ваш оконный менеджер использует для закрытия окон) и т. Д.
#! / bin / sh [$ # -eq 0] & amp; & amp; & amp; & amp; {echo "$ (basename $ 0): no command" & gt; & amp; 2 exit 1} "$ @" || {echo "не удалось: $?" exec $ SHELL}
Поместите этот файл где-нибудь, например ~ / bin, а затем используйте команду «success-or-shell your original command» в вашей пусковой установке. [ ! d4]
Используйте команду watch
.
Формат: watch -n60 myCommand
или watch -n60 «моя командная строка»
-n
задал количество секунд ожидания между вызовами myCommand ; ex: вышеуказанная команда будет называть myCommand каждые 60 секунд, навсегда. «моя командная строка»
. Предположим, вы хотите, чтобы Launcher отображал использование диска и оставался открытым для читателя. Я бы просто использовал эту команду в Launcher: watch -n60 "df -h"
, который вызывает df -h
сейчас каждые 60 секунд.
Мне нравится это по принятому ответу gnome-terminal -e «mycommand | less»
, потому что я запускаю Xubuntu, который по умолчанию использует другой терминал.
В ярлыке .desktop используйте этот
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT; exec $ SHELL"
After ваш скрипт закончен, процесс Bash заменит себя новым вызовом самого себя.
Если вам нужно передать цитированные аргументы в свой скрипт, вам нужно избежать кавычек:
Exec = gnome-terminal -x bash -c "YOUR_SCRIPT \" arg with spaces \ "; exec $ SHELL"
Этот ответ дает лучший ответ, который я видел до сих пор, чтобы делать то, что вы хотите. Они рекомендуют создать скрипт с исполняемыми командами и использовать его с параметром -init-file (специфичный для bash, но вы, вероятно, могли бы сделать то же самое для csh / tcsh / zsh и т. Д.):
#! / bin / bash --init-file для запуска
... и выполнить его как:
xterm -e / path / to / script # или gnome-terminal -e / path / to / script # или the-terminal -e bash --init-файл / путь / в / script / с / no / shebang