在脚本中执行cqlsh

时间:2017-11-14 15:03:07

标签: linux bash shell cqlsh

我正在尝试在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

1 个答案:

答案 0 :(得分:1)

一些建议

  1. 使用[[ / ]]而不是[ / ]
  2. $()的返回值不是错误值,应该命名为lines或更有意义的内容。代码中缺少另一个错误变量会使附加的数字(1中的error1)看起来更奇怪。
  3. 没有理由在子shell中使用more或pipe。只需在您的文件上运行wc -l
  4. 您确定cqlsh中有PATH吗?请尝试which cqlsh找到它。
  5. wc永远不会返回负值,因此将零与零相比较将是明确的,并涵盖尽可能多的潜在案例。
  6. 否则

    如果这不能让你摆脱困惑,请在尝试运行时显示输出。