序文
問題の根本はスクリプトを実行する姿勢が間違っていることです、被害は大きくありませんが、侮辱はかなり強力です、見てみましょう!
Expect のインストールとその優れたケースに興味がある場合は、ここをクリックしてください。
エラーメッセージ
[root@RHEL7 期待]# . ssh.exp
bash: spawn: コマンドが見つかりません...
ファイル "{" を読み取れませんでした: そのようなファイルまたはディレクトリはありません
bash: はい/いいえ: そのようなファイルまたはディレクトリはありません
問題の根本
スクリプトを実行するときは、 # ./file.exp (正しい実行方法) ではなく # . file.exp (間違った実行方法) を使用してください。
問題はこのスラッシュにあります。
拡大
シェルが機能する 5 つの方法
最初のものは絶対パスを使用して実行します
2 番目の方法は、./ などの相対パスを使用することです。
3つ目は、shコマンドを使用してフォーマットを実行する方法 shスクリプト名に実行権限は不要 -xパラメータ(実行プロセスを表示)
. (スペース) スクリプト名を使用する 4 番目の方法は、実行権限を必要としません。
ソース スクリプト名を使用する 5 番目の方法は、実行権限を必要としません (主に効果的な構成ファイルに使用されます)。
この場合の Expect は 4 番目のメソッド. (スペース)を使用して実行され、エラーが報告されます。
[root@RHEL7 expect]# . ssh.exp
bash: spawn: command not found...
couldn't read file "{": no such file or directory
bash: yes/no: No such file or directory
2 つ目は相対パスで実行する方法です (事前にスクリプトファイル chmod +x に実行権限を付与する必要があります)。
注: 通常の bash シェルの場合、上記の 5 つの実行方法はすべて利用可能ですが、expect はそれほど使いにくいため、2 番目の方法が推奨されます。
これまでのところ問題は解決されています
エピローグ
バージョンは反復されており、学習のペースを止めることはできません。一度停止すると、予約された知識は古くなってしまう可能性があります。新しいものを常に新しく保ち、技術的な予約を適時に更新する必要があります。さあ、若者!
悪くないと思ったら急いでいいね!