私はさまざまな他のスクリプトを呼び出す複雑なシェルスクリプトを持っています。このスクリプト内のいくつかのコマンドは、sudoのパスワードを要求します。私はこれを自動化するためのラッパースクリプトを書いています。 だから、オンライン調査で、私は以下のものを見つけました:パスワードを尋ねるシェルスクリプトを自動化
、パスワードを持たないsudoerファイルを作成しますが、コマンドのリストは、この条件が適用されるために与えられたする必要がありそうです。スクリプト内のどのコマンドがsudoのパスワードプロンプトを起動しているかを検索したくないのは、時間がかかりすぎるためです。
Expectユーティリティ。これはexpect interpreterで動作し、spawnがexpectインタープリタコマンドであるためスクリプトを生成できません。
#!/usr/bin/expect spawn sudo su expect "*assword" send "abc12\n" interact
しかし、私は必要なのはこれです::だから、基本的に以下のコードで扱う期待
#!/usr/bin/expect
spawn ./complex_script.sh <arg1> <arg2>
expect "*assword"
send "abc12\n"
interact
私はこれを実行すると、私は以下のエラーが表示されます。 は実行できませんでした"complex_script.sh":そのようなファイルまたはディレクトリ "スポーンcomplex_script.sh rootfsの" (ファイル "./a.sh" ライン2)
の実行中- エコーパスワード| script.shも動作しません。
ありがとうございます。
なぜrootとしてスクリプトを起動してsudoコマンドを忘れるのはなぜですか? –
エラーは、生成するスクリプトが見つからないと示しています。絶対パスを使ってみましたか? – OscarAkaElvis