使用bash声明postgres计数输出

时间:2018-06-22 01:37:17

标签: bash postgresql psql

我想使用bash声明postgres查询的输出。具体而言,我正在编写一个bash作业,该作业对行数进行计数,如果计数不等于零,则会执行某些操作以提高警报速度。

$ psql MY_DATABASE -c "SELECT COUNT(*) WHERE foo=bar"
 count
-------
    0
(1 row)

在我的脚本中,我想断言上述查询的输出为零。但是我不确定从哪里开始,因为输出的不是数字,而是格式化的多行字符串。

psql中是否有一个选项可以使它在计数时输出一个数字,或者您能想到其他方法吗?

1 个答案:

答案 0 :(得分:0)

我建议使用临时文件重定向输出并使用它。完成工作后,删除临时文件。

psql your_database -c "SELECT COUNT(*) as Count from table_a where c1=something"  -t >assert.tmp
line=$(head -n 1 assert.tmp)
if [ $line -ge 0 ]; then
    echo "greater then 0 and values is--"$line
fi
rm assert.tmp

希望它对您有用。