linux - 在脚本中执行 cqlsh

标签 linux bash shell cqlsh

我正在尝试在 bash 脚本中执行 cqlsh。我的脚本如下。当我尝试执行 sh 文件时,它返回 cql command not found

#!/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. 使用 [[/]] 而不是 [/]
  2. $() 的返回值不是错误值,应命名为lines 或更有意义的名称。代码中缺少另一个错误变量使得附加数字(error1 中的 1)看起来更加奇怪。
  3. 没有理由在子 shell 中使用 more 或管道。只需在您的文件上运行 wc -l
  4. 您确定 cqlshPATH 中吗?尝试 which cqlsh 找到它。
  5. wc 永远不会返回负值,因此比较与零的相等性将很清楚,并且涵盖了同样多的潜在情况。

否则

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

关于linux - 在脚本中执行 cqlsh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288962/

相关文章:

bash - 将没有扩展名的文件重命名为带有扩展名的随机文件 {1,2...}

Linux:使用文件中的一个记录实例提取值

无法使用 C 中的命名管道与 shell 脚本通信

bash - 哪个 Unix 命令可以从这个字符串中获取数字?

java - 如何在 Linux (Centos 7) shell 上在后台正确运行 Spring Boot Batch 应用程序?

linux - "Memory is below 1MB, or missing a M/G at the end of the memory specification?"是什么原因

python - Fabric Remote Execution 需要用户响应提示?

linux - 无法通过 bash 文件跟踪错误

php - Magento FPC Cache Warm 与用户组、wget、Lesti FPC

javascript - 使用 Javascript 读取 Linux 系统文件?