我正在尝试编写一个 Bash 脚本来从脚本中构造的字符串运行 MySQL 查询。我已经能够构造查询字符串,并且在回显时看起来是正确的。我可以将它剪切并粘贴到 shell 命令行中并运行。但是,我基本上需要将查询结果缩减为 OK 或 CRITICAL 等单词。没有其他的。当我尝试将查询结果保存到 bash 变量时,我得到:
mysql:未知选项'-2'
如果我剪掉 grep 并剪掉代码,我会得到mysql --help
结果。所以,它不喜欢我的 mysql 字符串,但我不知道为什么。帮助?
顺便说一句-运行 CentOS 6.3
alert=`mysql myDB -e "select value from config_table where name=\"ach_alert_time\"\G" | /bin/grep value: | /bin/cut -f2 -d:`
echo $alert #Brings back 18,50,00
sql="mysql myDB -e 'select if(count(*) > 0,\"CRITICAL\",\"OK\") as STATUS from xyz_batch where timestamp > concat(date(now()),\" \",maketime("$alert"))\G' | /bin/grep OK | /bin/cut -f2 -d:"
echo $sql # mysql myDB -e 'select if(count(*) > 0,"CRITICAL","OK") as STATUS from xyz_batch where timestamp > concat(date(now())," ",maketime( 18,50,00))\G' | /bin/grep OK | /bin/cut -f2 -d
status=`$sql`
# Whoops!
# mysql: unknown option '-2'
echo $status