我正在尝试在bash脚本中执行cqlsh。我的脚本如下。当ı尝试执行sh文件时,它返回未找到的cql命令
#!/bin/bash
set -x
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
cqlsh -e "SELECT * FROM msg.msg_log limit 1;" > /home/yunus/sh/cqlshcontrol.txt
error1=$( more /home/yunus/sh/cqlshcontrol.txt | wc -l )
if [ $error1 -lt 1 ]; then
curl -S -X POST --data "payload={\"text\": \" Cqlsh not responding, Connection Problem \",\"username\":\"Elevate Cassandra1\",\"icon_emoji\":\"${SLACK_ICON}\"}" https://hooks.slack.com/services/
fi
答案 0 :(得分:1)
[[
/ ]]
而不是[
/ ]
。$()
的返回值不是错误值,应该命名为lines
或更有意义的内容。代码中缺少另一个错误变量会使附加的数字(1
中的error1
)看起来更奇怪。more
或pipe。只需在您的文件上运行wc -l
。cqlsh
中有PATH
吗?请尝试which cqlsh
找到它。wc
永远不会返回负值,因此将零与零相比较将是明确的,并涵盖尽可能多的潜在案例。如果这不能让你摆脱困惑,请在尝试运行时显示输出。