Обработка Bash команды ниже может быть удивительной:
flock -x -w 5 /dev/shm/counter.txt echo "4" > /dev/shm/counter.txt && sleep 5
Bash сначала работает flock -x -w 5 /dev/shm/counter.txt echo "4" > /dev/shm/counter.txt
и, если это завершается успешно (выпускающий блокировку), то она работает sleep 5
. Таким образом блокировка не сохранена в течение 5 секунд, которые можно ожидать.
Если вы хотите запустить вывод программы, которую вы говорите xterm для запуска, xterm -hold -e-mange arg1 arg2 arg3 | tee ~ / log.txt "
так Например, в моем Ubuntu я пробежал из Gnome-Terminal
Что-то вроде Xterm -hold -e "Firefox | Tee ~ / log.txt"
Также есть возможность журнала ошибок С
программа 2> errors.txt
, который перенаправляет любые ошибки, которые обычно переходят в консоль, чтобы файл
, но это немного избыточно, я думаю. Запуск программы от одного терминала в другую.
Перенаправление вывода может изменить поведение программ, выполняемых в терминале. Если вы хотите перехватить весь вывод программы, используйте что-то, что не мешает работе программы, например, script
:
xterm -hold -e script -c "program arguments" output.log
(Linux) или
xterm -hold -e script output.log program arguments
(OSX, другие BSD)
Альтернативно, вы можете настроить xterm
на запись своего экрана на "принтер", например, используя ресурс printerCommand
или пункт меню Print-All Immediately.
Дальнейшее чтение:
Вы можете включить ведение журнала xterm и отправить весь вывод xterm в файл:
xterm -l -lf logfile.txt -e program