Linux 例外 (6): エラーが予想されます bash: spawn: コマンドが見つかりません; ファイルを読み取れませんでした

序文

問題の根本はスクリプトを実行する姿勢が間違っていることです、被害は大きくありませんが、侮辱はかなり強力です、見てみましょう!

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 番目の方法が推奨されます。

これまでのところ問題は解決されています 

エピローグ

バージョンは反復されており、学習のペースを止めることはできません。一度停止すると、予約された知識は古くなってしまう可能性があります。新しいものを常に新しく保ち、技術的な予約を適時に更新する必要があります。さあ、若者! 

悪くないと思ったら急いでいいね!

ノート

1. Linux スキル(5):インストールと導入を想定 | 絶妙なケース | 詳しい解説

おすすめ

転載: blog.csdn.net/xp871038951/article/details/127354159