Как записать вывод вместе с сообщениями об ошибках в файл при запуске сценария в командной строке psql на ОС Freebsd? - PullRequest
0 голосов
/ 02 мая 2019

На RHEL работает следующая команда: psql -h имя хоста -U имя пользователя -p номер_порта -d база данных -f /tmp/myfile.sql &> logfile01.txt

В FreeBSD выдается ошибка: «Неверная нулевая команда»

Пожалуйста, предложите.

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Если вы используете это только в командной строке, нет необходимости менять оболочку. Чтобы перенаправить stdout и stderr в файл в C-Shell synthax, просто используйте «> & filename».

Другая история, если вы хотите написать сценарии оболочки. Bourne Shell и его клоны (например, Bash) лучше подходят для написания сценариев. См. Этот FAQ по Unix "Программирование на Csh считается вредным": http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

0 голосов
/ 02 мая 2019

Это перенаправление работает в bash

&> logfile01.txt

, но он не работает в csh , который является оболочкой по умолчанию в FreeBSD.

# set | grep shell
shell   /bin/csh
# ls -la &> logfile01.txt
Invalid null command.

Bash не устанавливается по умолчанию. Вы можете установить это

pkg install bash

и настройте его как оболочку по умолчанию .

...