我想验证我是否可以连接到数据库(PostgresSQL)到bash脚本
我执行以下命令(PGUSER,PGDATABASE ...已设置)
psql -f sql/test_connection.sql > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
当我回音时$?,如果成功则显示0,否则显示2.
它在终端中工作正常.
当我将它放入bash脚本时,即使凭据不正确,结果也始终为0.
psql -f sql/test_connection.sql > /dev/null 2>&1
if [ $? ]
then
echo "OK"
else
echo "Doudh!!"
fi
Run Code Online (Sandbox Code Playgroud)
我在哪里错过了什么?
试试这个:
if [ $? -eq 0 ]
Run Code Online (Sandbox Code Playgroud)
运行脚本时,使用-x选项打印出正在执行的每个命令和实际值.它对调试非常有用.您将看到与什么相比较的内容,传递给哪个命令的内容.
$sh -x prg.sh
Run Code Online (Sandbox Code Playgroud)
要么
$bash -x prg.sh
Run Code Online (Sandbox Code Playgroud)