ルータのサブモジュールに接続しようとしていて、コマンドを実行して出力をファイルに保存しようとしています。私が持っている問題は、サブモジュールにはユーザー名とパスワードが必要であり、すべてのコマンドを1つのスクリプトに入れると、入力を求めるプロンプトが表示される前にユーザー名/パスの詳細が送信されるということです。コマンド間に遅延を設定する方法や、同じSSHセッションの下でバッチで実行する方法はありますか?Bash - SSHそれらの間に遅延を持つ複数のコマンド
私はEOFのアプローチを使用しても、別のファイル(推奨)でコマンドを持つ:
ssh [email protected] > file.log << EOF
session slot 1 # command to connect to the subslot.
# a delay of about 3 sec would be required before the credentials are sent
slot_username
slot_password
command1
command2
command3
exit
exit
EOF
また、第2の出口は、ルータの外に私を取る必要があり、それは単に無視されます。
私は 'expect'を使うことを提案します。 – Cyrus
ありがとうございます。最終的に私は期待を使ってスクリプトを作成しました。私はbashスクリプトと組み合わせて、メニューの入力を促し、ユーザーの入力を得ました。私はこれを行うために "スマート"な方法があると確信していますが、期待通りにユーザー入力を取得し、変数としてデータを使用する方法を見つけられていません.. –