Bash 将 heredoc 输出重定向到 /dev/null
Bash redirect heredoc output to /dev/null
我有一个 bash 脚本调用 psql 并执行 SQL 代码:
sudo -i -u postgres psql <<EOF
SQL COMMANDS;
EOF
SQL 部分生成大量输出,我想将其重定向到 /dev/null。如何将 heredoc 重定向到 /dev/null?
琐碎
postgres psql <<EOF >/dev/null
SQL COMMANDS;
EOF
<<
token heredoc 定界符只是另一个重定向操作符;所以你可以做类似
的事情
postgres psql <<EOF 2>/dev/null |
SQL COMMANDS;
EOF
while IFS= read -r output; do
case $output in
*error*) printf '%s%s%s\n' "$red" "$output" "$plain";;
*) echo "$output";;
esac
done
从第一行开始的管道在 EOF
标记之后继续。 (这需要您分别为红色和无色文本定义屏幕控制代码;man tput
。)
我有一个 bash 脚本调用 psql 并执行 SQL 代码:
sudo -i -u postgres psql <<EOF
SQL COMMANDS;
EOF
SQL 部分生成大量输出,我想将其重定向到 /dev/null。如何将 heredoc 重定向到 /dev/null?
琐碎
postgres psql <<EOF >/dev/null
SQL COMMANDS;
EOF
<<
token heredoc 定界符只是另一个重定向操作符;所以你可以做类似
postgres psql <<EOF 2>/dev/null |
SQL COMMANDS;
EOF
while IFS= read -r output; do
case $output in
*error*) printf '%s%s%s\n' "$red" "$output" "$plain";;
*) echo "$output";;
esac
done
从第一行开始的管道在 EOF
标记之后继续。 (这需要您分别为红色和无色文本定义屏幕控制代码;man tput
。)