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スクリプトに追加された変数を取得します。

ありがとうございます:)

おすすめ記事