psql return 找到零行时的代码
psql return code if zero rows found
如果找到零行,我希望我的 psql 命令失败:
psql -U postgres -d db -c "select * from user where id=1 and name='Joe';"
我希望能够检查 return 值。如果至少存在一行,则来自进程 (!) 的 Return 0,如果不存在这样的行,则来自 psql 进程的 return 非零。如果找不到行,我如何设置 return 代码?
我不认为 psql 可以自己完成,但如果你只是想看看是否有任何行或没有退出状态,你可以像这样组合它
psql -U postgres -d db -t -c "select * from user where id=1 and name='Joe'" | egrep .
如果无法匹配任何内容,这将导致 egrep 以 non-zero 退出。 -t
将使其不打印列 headers 和摘要信息,因此如果您需要这些内容,您可能需要调整此命令行。
如果找到零行,我希望我的 psql 命令失败:
psql -U postgres -d db -c "select * from user where id=1 and name='Joe';"
我希望能够检查 return 值。如果至少存在一行,则来自进程 (!) 的 Return 0,如果不存在这样的行,则来自 psql 进程的 return 非零。如果找不到行,我如何设置 return 代码?
我不认为 psql 可以自己完成,但如果你只是想看看是否有任何行或没有退出状态,你可以像这样组合它
psql -U postgres -d db -t -c "select * from user where id=1 and name='Joe'" | egrep .
如果无法匹配任何内容,这将导致 egrep 以 non-zero 退出。 -t
将使其不打印列 headers 和摘要信息,因此如果您需要这些内容,您可能需要调整此命令行。