我有一个创建数据库的简单脚本
#!/bin/sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
psql -d track -q -f "$DIR"/create.sql > RESULT
RESULT="$(psql -d track -q -f "$DIR"/create.sql)"
echo $RESULT
这样:
$ bash MakeDB.sh > result
生成空结果文件
psql生成一些输出到终端的日志信息,事情是我无法重定向该信息,因此我想进一步传递它。
有没有办法存储psql输出?最好不要在终端上打印。
答案 0 :(得分:4)
psql produces some log info that is output to terminal, the thing is I can't redirect that info, I want to pass it further as a result.
让你的脚本像这样:
#!/bin/sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
psql -d track -q -f "$DIR"/create.sql > RESULT 2>&1
psql -d track -q -f "$DIR"/create.sql
然后,您可以使用以下语法将stderr
重定向到与stdout
相同的文件:
bash MakeDB.sh > result 2>&1