gpt4 book ai didi

mysql - 如何使用 || 检查 mysql 查询是否成功在 shell 脚本中?

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:11 29 4
gpt4 key购买 nike

我不确定在哪里放置我的成功消息函数,它的工作方式如下:

    responseMessage() {
echo "$1" || echo "$2"
}

我会这样调用它:

#!/bin/bash

password='123456'

responseMessage() {
echo "$1"|| echo "$2"
}

mysql <<MYSQL
UPDATE users SET password='${password}' where ID='1';

MYSQL && responseMessage "Successfully updated password." "Failed to update password"

我不确定我应该把函数放在哪里。

将它放在上面示例中的位置,我得到以下内容:

user@DESKTOP:~$ bash testmysql.sh
testmysql.sh: line 12: warning: here-document at line 9 delimited by end-of-file (wanted `MYSQL')
ERROR 1046 (3D000) at line 1: No database selected

我希望 No Database selected 错误,因为它是正确的,但是我希望打印 responseMessage 的第二个参数。

这是显而易见的事情吗?谢谢

编辑:还尝试了以下方法:

user@DESKTOP:~$ bash testmysql.sh
ERROR 1046 (3D000) at line 2: No database selected
user@DESKTOP:~$ cat testmysql.sh
#!/bin/bash

responseMessage() {
echo "$1" || echo "$2"
}

mysql <<MYSQL && responseMessage "Successfully updated password." "Failed to update password"

UPDATE users SET password='123456' where ID='1';

MYSQL

根据 https://github.com/koalaman/shellcheck/wiki/SC1121,我肯定会认为这会起作用

--

我还基于此创建了函数,它实现了我的预期:

user@DESKTOP:~$ bash testmysql.sh
ERROR 1046 (3D000) at line 2: No database selected
Failed to recreate the schemata.
user@DESKTOP:~$ cat testmysql.sh
#!/bin/bash

responseMessage() {
echo "$1" || echo "$2"
}

mysql <<MYSQL && echo "Successfully recreated the schemata." || echo "Failed to recreate the schemata."

UPDATE users SET password='123456' where ID='1';

MYSQL

最佳答案

我已经开始使用 heredocs 并检查退出代码值。这仍然没有真正解决我想将我的响应变成一个函数的问题,但它比我以前做的要好。

result=$(mysql <<MYSQL

UPDATE users SET password='123456' where ID='1';

MYSQL

)

[ $? = 0 ] && echo "Success" || echo "Failed"

关于mysql - 如何使用 || 检查 mysql 查询是否成功在 shell 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47110330/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com