0
我想因爲如果零行找到我的PSQL命令失敗:PSQL返回代碼,如果零行發現
psql -U postgres -d db -c "select * from user where id=1 and name='Joe';"
我希望能夠檢查返回值。如果至少存在一行,則從進程(!)返回0,如果不存在這樣的行,則從psql進程返回非零值。如果找不到行,我該如何設置返回碼?
我想因爲如果零行找到我的PSQL命令失敗:PSQL返回代碼,如果零行發現
psql -U postgres -d db -c "select * from user where id=1 and name='Joe';"
我希望能夠檢查返回值。如果至少存在一行,則從進程(!)返回0,如果不存在這樣的行,則從psql進程返回非零值。如果找不到行,我該如何設置返回碼?
我不認爲PSQL可以自己做,但如果你只是想看看是否有任何行或不退出狀態,你可以像
psql -U postgres -d db -t -c "select * from user where id=1 and name='Joe'" | egrep .
結合起來這將導致egrep的如果它不能匹配任何東西,則退出非零。 -t
將使它不打印列標題和摘要信息,所以如果你需要這些東西,你可能需要調整這個命令行。
爲什麼不嘗試'select count(*)'。也便宜很多。 – Dinesh
@Dinesh'select count(*)'將始終返回一行。 –
@eatonphil請看[此](http://stackoverflow.com/a/30027767/1216680)它可能是你正在尋找沒有使用'grep'命令 – Houari