Я пытаюсь достичь sh довольно простой цели: отреагировать на возможную ошибку предыдущей команды второй командой. Ключ в спицах заключается в необходимости использовать синтаксис heredo c в первой команде.
this (упрощенный пример) даст результат, который я хочу поймать:
psql -c "select * from table_that_doesnt_exist" || echo "error"
кроме того, SQL, который мне нужно выполнить, состоит из нескольких команд, и в моих обстоятельствах я должен сделать это с помощью heredocs:
psql << SQL
select * from good_table;
select * from table_that_doesnt_exist
SQL
и при попытке успешно прочитать stderr из этого типа конфигурации (I ' Я пробовал миллион способов) Я не могу понять это. Эти методы не работают:
( psql << SQL
select * from good_table;
select * from table_that_doesnt_exist
SQL
) || echo "error"
или
psql << SQL || echo "error"
select * from good_table;
select * from table_that_doesnt_exist
SQL