将参数发送到外壳命令

时间:2018-06-28 08:44:35

标签: ubuntu sms gsm

我是Linux的新手,所以请帮助我。 我在已连接GSM调制解调器的Ubuntu 18.04LTS(Srv1)上使用ModemManager。我的任务是在服务器监视器上执行某些触发操作时,zabbix将向Srv1运行脚本ssh并将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 check sh文件接收2个参数v1作为主机名(abc),v2作为触发器名(检查)。然后,它从“ countmess”文件中读取一个计数器变量。这里的问题是命令:

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

它返回错误:

  

错误:无法解析属性字符串:“值后出现意外内容(检查问题,编号= + 8412345678)”

请告诉我解决方法。 对不起,我的英语不好

1 个答案:

答案 0 :(得分:0)

在脚本中调用v1和v2,如下所示:

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