EXPECT를 사용하여 bash 스크립트에서 변수 설정

EXPECT를 사용하여 bash 스크립트에서 변수 설정

Cisco 스위치에 로그인하고 정의한 모든 포트를 종료/noshut하는 bash 스크립트가 있습니다.

내가 원하는 것은 다음과 같은 명령으로 포트 번호를 정의할 수 있는 것처럼 변수를 추가할 수 있다는 것입니다.

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

하지만 스크립트에서는 변수를 추가하는 것을 허용하지 않으며 다음 오류가 발생합니다.

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

내가 사용하는 스크립트의 코드는 다음과 같습니다.

#!/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

답변1

어쩌면 내가 너무 불안한지도 모르겠다. 추가해야 해요

set port [lindex $argv 0]

$1스크립트에 추가된 변수를 가져옵니다 .

감사해요:)

관련 정보