我有一個通過tellnet參數化expect腳本
1 | #!/usr/bin/expect
2 | set timeout 10
3 | set ip [lindex $argv 0];
4 | set port [lindex $argv 1];
5 | log_file [lindex $argv 2];
6 | spawn telnet $ip $port
7 | expect "'^]'."
8 | sleep .1
9 | send "{\"INFO\":0}\0\r"
10| expect "}]}"
11| send "\35"
12| expect "telnet>"
13| send "q\r"
14| interact
這工作得很好,但我想參數化線9,但儘管我盡了最大努力,我不能讓它工作與一些加熱控件交互的腳本。這必須要看逃生如何運作。
理想的情況下我的新腳本如下所示:
#!/usr/bin/expect
set timeout 10
set ip [lindex $argv 0];
set port [lindex $argv 1];
log_file [lindex $argv 2];
set command [lindex $argv 3];
send_user $command;
spawn telnet $ip $port
expect "'^]'."
sleep .1
send "$command"
expect "}]}"
sleep .1
send "\35"
expect "telnet>"
send "q\r"
interact
,我會從像bash腳本調用它:
BASE_PATH=/usr/share/testing
LOG=$BASE_PATH/telnet.log
IP=10.10.10.5
PORT=4242
COMMAND="{\\\"INFO\\\":0}\0\r"
A_TEMP=`$BASE_PATH/telnet.sh $IP $PORT $LOG "$COMMAND"`
...
抱歉#錯誤地張貼了。 – user3262302
好的。如何調試信息?你可以發佈嗎? – Dinesh