将参数发送到外壳命令



我是Linux的新手,所以请帮助我。 我在连接GSM调制解调器的Ubuntu 18.04LTS(Srv1(上使用ModemManager。我的任务是当服务器监视器上的某些触发操作时,zabbix将运行脚本ssh到Srv1并向管理员发送SMS。这是代码:

#!/bin/bash
v1=$1
v2=$2
count=$( cat countmess)
count=$((count+1))
//textt="$v1 have issue $v2"
sshpass -p "12345678" ssh -o StrictHostKeyChecking=no monitor@192.168.29.190 sudo mmcli -m 1 --messaging-create-sms="text='$(v1) have issue $(v2)',number='+8412345678'"
sshpass -p "12345678" ssh -o StrictHostKeyChecking=no monitor@192.168.29.190 sudo mmcli -s $count --send exit
rm -f countmess
echo "$count" >> countmess
exit

呼叫:./sms_script.sh abc checksh 文件接收 2 个参数 v1 作为主机名 (abc( 和 v2 作为触发器名称(检查(。然后它从"countmess"文件中读取一个计数器变量。这里的问题是命令:

> sudo mmcli -m 1 --messaging-create-sms="text='$(v1) have issue $(v2)',number='+8412345678'"

它返回错误:

错误:无法分析属性字符串:"值后出现意外内容(有问题检查,数字=+8412345678(

请告诉我修复它的方法。 对不起,我的英语不好

在您的脚本中调用 v1 和 v2 像这样:

sudo mmcli -m 1 --messaging-create-sms="text='$v1 have issue $v2',number='+8412345678'"

最新更新