【问题标题】:Execute cqlsh inside script在脚本中执行 cqlsh
【发布时间】:2018-04-27 14:08:34
【问题描述】:

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

【问题讨论】:

  • python的位置在哪里?
  • /usr/bin/python
  • /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
  • 告诉你这是否对你有帮助:[1]:stackoverflow.com/questions/29944484/…

标签: linux bash shell cqlsh


【解决方案1】:

一些建议

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

否则

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

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 2018-12-07
    • 2020-04-24
    • 2018-02-20
    • 2017-10-16
    • 2013-07-13
    • 2018-08-29
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多