Нет не -хакерских способов перенаправить вывод другого процесса в другое место [1], но если a)вы не планируете когда-либо возвращать свой процесс на передний план и b)в порядке с другим процессом (легким -весомымcat
)также работающим в течение всего времени работы вашей программы, это может привести к:
{ your_program... & } | (trap : INT; cat & sleep 5; kill $!; cat >/dev/null &)
Вы можете захотеть перенаправить как stderr, так и stdout вашей программы в конвейер с помощью your_program 2>&1
.
[1] Возможный хакерский способ — подключиться к нему с помощью отладчика и перенаправить его вывод изнутри.
Вы можете создать файл конфигурации.desktop и связать его с файлом bash. Таким образом, вы можете запустить файл оболочки, и он не откроется в терминале. Просто не забудьте изменить Terminal=True
на Terminal=False
, чтобы не открывать в терминале. Введите ниже в файл с именем «anyfile.dekstop» и сделайте его исполняемым (щелкните правой кнопкой мыши -свойства -разрешите выполнение файла как программы)
[Вход с рабочего стола]
Версия=1.0
Exec="путь к вашему исполняемому файлу или файлу.sh"
Имя=Образец
GenericName=Образец
Comment=Любой комментарий
Кодировка=UTF -8
Терминал=ложь
Тип=Приложение
Категории=Приложение
Icon=любая ссылка на значок
Теперь я вижу большое недоразумение :Я думал, что задание должно начинаться на переднем плане и волшебным образом переходить на задний план через 5 секунд, и вывод не имеет значения . Однако с этим ответом вывод продолжается... Q кажется равным «фону» с «отсутствием вывода». В любом случае это интересно:
С помощью этого вспомогательного скрипта "подтяжка"...
#!/bin/bash
sleep 1
pid=$(pidof -x counter.sh)
sleep 3
kill -s STOP $pid
sleep 1
kill -s CONT $pid
...Я могу приостановить выполнение сценария 'counter.sh' и перезапустить его в фоновом режиме. Звонок:
./suspender &./counter.sh
«Приостановка» запускается в фоновом режиме и ждет секунды, пока не запустится счетчик. Он получает pid и ждет 3 секунды (задержки в соответствии с запросом ). Сигнал STOP соответствует ctrl-Z
, CONT — bg
. Сон между ними необходим.
Счетчик — это программа, которую нужно смотреть несколько секунд и часто нажимать клавишу -c ней. Через пять секунд он должен освободить подсказку. Выход не имеет значения. Это просто печатает 10 чисел, становясь медленнее.
#!/bin/bash
for i in {1..10}
do
sleep $i; echo $i
done
С сообщениями управления заданием и продолжающимся выводом это не очень приятно.
Перед приостановкой -возобновлением -в действии -bg вы можете остановить скрипт, нажав ctrl -c, а затем использовать подсказку. Это почти имеет смысл...