Полностью забыл, как сделать это правильно, и, вероятно, также забыл правильные термины.
Длинный встроенный ввод (я думаю, это то, что он называется), используя Teradata bteq в качестве примера клиента, читающего stdin (так же, как Oracle sql* plus или Sybase i sql et c) - так что это может быть что угодно.
bteq <<!
select sql_column1
`if [ "$mode" == "mode1" ]; then`
, sql_column2
`fi`
, sql_column3
from table1
;
!
Здесь, если режим "mode1" - I выведите 3 sql_columns, иначе два. Теперь представьте, что это очень большой ввод, поэтому эти условные манипуляции могут быть очень полезными. Я почти уверен, что делал это раньше, но covid-19 полностью очистил мою память. С этим синтаксисом я получаю: синтаксическая ошибка в строке xx: `then 'не соответствует.
Как мне сделать это правильно, и каковы правильные Unix термины для того, что я назвал здесь как) inline вход; и б) встроенное состояние?