Как узнать, что происходит в фоновом режиме, когда мы запускаем файл .sh в Linux?

Я знаю один путь, то есть ./filename.sh > log.txt . Но этот файл журнала содержит содержимое, которое отображается в консоли, если мы запустим файл, используя ./filename.sh .

Фоновый процесс не отображается в файле журнала. Под «фоновым процессом» я подразумеваю, как компилятор оценивает каждую строку (это слово «debug» подходит, я думаю).

Как получить этот фоновый процесс в файл журнала?

2 Solutions collect form web for “Как узнать, что происходит в фоновом режиме, когда мы запускаем файл .sh в Linux?”

Основываясь на вашем комментарии:

Я хочу сказать, что я хотел бы знать, «Как bash выполняет каждую строку сценария оболочки» при запуске файла .sh.

Если вы используете bash, то то, что вы ищете, это:

 bash -x ./filename.sh 

или

 bash -x ./filename.sh > log.txt 

В качестве альтернативы вы можете добавить:

 set -x 

к содержимому filename.sh .

В верхней части скрипта (после Shebang) добавьте строку:

 exec >/path/to/log.txt 

перенаправить STDOUT скрипта на /path/to/log.txt .

Если вы хотите перенаправить оба STDOUT и STDERR:

 exec >/path/to/log.txt 2>&1 

Или просто STDERR:

 exec 2>/path/to/log.txt 

Теперь, независимо от того, что сценарий находится на переднем плане или в фоновом режиме, файл журнала будет иметь STDOUT (и / или STDERR).

  • В чем разница между #! / Bin / bash и #! / Usr / bin / env bash
  • Shell Script: для извлечения части строки из файла после того, как найдено совпадение
  • Сценарий оболочки для запуска приложения Node.js с помощью Gulp каждые два часа
  • #! / bin / bash exponent
  • case multi-pattern со строками
  • Загрузка выходного текста без файлов записи
  • смотреть файл и сравнивать контрольную сумму
  • Нужна помощь для скрипта Linux Bash
  • Сценарий оболочки для отображения первой или последней n строк файла
  • Скрипт для создания другого скрипта обрабатывает все файлы в последовательности?
  • как grep имена файлов на основе даты
  • Выход из скрипта, который перезапускает приложение
  • Linux и Unix - лучшая ОС в мире.