我需要编写一个脚本来输入程序的多行输入( psql
)。
经过一番谷歌搜索,我发现以下语法有效:
cat << EOF | psql ---params
BEGIN;
`pg_dump ----something`
update table .... statement ...;
END;
EOF
这正确地构造了多行字符串(从 BEGIN;
到 END;
,包括在内)并将其作为输入传递给 psql
。
但我不知道它是如何/为什么起作用的,有人可以解释一下吗?
I’m referring mainly to cat << EOF
, I know >
outputs to a file, >>
to a file, <
reads input from文件。
<<
究竟是做什么的?
是否有它的手册页?
原文由 hasen 发布,翻译遵循 CC BY-SA 4.0 许可协议
这称为 heredoc 格式,用于将字符串提供到标准输入中。有关更多详细信息,请参阅 https://en.wikipedia.org/wiki/Here_document#Unix_shells 。
从
man bash
: