Управление выводом в сценарии оболочки Linux


1

Когда я запускаю скрипт оболочки в bash, я помещаю все в файл следующим образом:

./script.sh & gt; results.txt

Некоторые команды в моем скрипте выводятся в терминал, а не в текстовый файл.

Например, строка cmd "ssh -V" выходы на терминал.

Что я могу сделать, чтобы получить результаты в файле results.txt?

Ответы:


2

Stderr не перенаправляется в файл. Скорее всего, вам нужно

./script.sh > results.txt 2>&1

перенаправить оба файла в файл results.txt. Обратите внимание, что

./script.sh 2>&1 >results.txt

это что-то другое, так как он перенаправляет стандартный вывод в файл, а stderr - в не перенаправленный стандартный вывод. И, конечно, вы можете заменить &1 для другого имени файла.

Если вы используете Bash, вам сойдет с рук

./script.sh &>results.txt

Не то чтобы во всех случаях переплетенные stdout / stderr не гарантировались в том же порядке, что и на консоли. Это будет работать для всего, не только для скриптов bash.


0

Убедитесь, что вы перенаправили все вывод в текстовый файл.

  • stdout с >
  • stderr с 2>

Узнать больше Вот а также Вот ,

Обратите внимание, что скрипт должен начинаться с:

#!/bin/bash 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.