set variable no script bash com EXPECT

0

Eu tenho um script bash que pode acessar o switch Cisco e fechar / noshut qualquer porta que eu tenha definido nele.

O que eu quero é que eu possa adicionar variável, como eu posso definir o número da porta em um comando como este:

./cisco.sh 10 #10 is the port number

Mas o script não me permite adicionar nenhuma variável e apresenta o seguinte erro:

can't read "1": no such variable
    while executing "set PORT "$1""

Aqui está o código do script que estou usando:

#!/usr/bin/expect -f
set timeout 20
set IPaddress "192.168.0.1"
set Username "zaib"
set Password "zaib"
set PORT "$1"
spawn ssh -o "StrictHostKeyChecking no" $Username@$IPaddress
expect "*assword: "
send "$Password\r"
expect ">"
send "enable\r"
expect "*assword: "
send "$Password\r"
send "conf term\r"
send "interface gigabitEthernet 1/0/$PORT\r"
expect "#"
send "shut\r"
expect "#"
send "exit\r"
expect "#"
send "exit\r"
send "wr\r"
send "exit\r"
exit
    
por Syed Jahanzaib 11.12.2015 / 07:01

1 resposta

0

talvez eu tenha pressa demais. Eu tive que adicionar "set usuário [lindex $ argv 0]" para obter $ 1 variável adicionada no script. obrigado:)

    
por 11.12.2015 / 07:08