我怎样才能在期望发送命令中使用“

我怎样才能在期望发送命令中使用“

我已经使用 /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\""

相关内容