我已经使用 /usr/bin/expect 通过 SSH 进入我的其他系统并使用 send 执行一些命令。
这是需要发送的命令,其中 5100097654311 是需要手动输入的变量:SHOW EPC EXAPN:APNNAME="4gdata",IMSI="5100097654311"
脚本如下:
read -p "Enter IMSI Number : " userimsi
usermnc=${userimsi:0:5}
echo ${usermnc}
/usr/bin/expect SHOW_bindingxGW.ttxt 172.28.24.37 $userimsi $usermnc > /result/xGWbinding.txt
sleep 10
inside SHOW_bindingxGW.ttxt
===========
set saddress [lrange $argv 0 0]
set userimsi [lrange $argv 1 1]
set usermnc [lrange $argv 2 2]
expect ">"
send 'SHOW MME EXAPN:APNNAME=\"smartfren4g\",IMSI=\"$userimsi\"'
send "\r"
expect ">"
send "logout\r"
我使用转义字符 \ 结果如下:
Enter IMSI Number : 5442313123
54423
usage: send [args] string
while executing
"send 'SHOW MME EXAPN:APNNAME=\"smartfren4g\",IMSI=\"$userimsi\"'"
(file "/home/lte/budi/mme/SHOW_bindingxGW.ttxt" line 8)
我怀疑是因为我在命令 $userimsi 中使用了变量。
有什么解决方案吗,我可以在期望命令下发送“”和变量?
谢谢。
答案1
如果您想要扩展变量的值,则需要使用"
,因此您需要转义任何其他内部的"
:
send "SHOW MME EXAPN:APNNAME=\"smartfren4g\",IMSI=\"$userimsi\""