2011-09-16 21 views
-1

ああ私の神!私はすべてを試して、を期待しています。私がしたいのは、端末のrootに変更するときに入力パスワードを自動化するスクリプトを作成することです。私はパスワードで立ち往生しています。このシェルスクリプトターミナルで自動化

expect -i 
spawn sudo pmset schedule sleep "{query}" expect { Password: send "password\r" }; interact;  
exit 

結果

expect1.1> spawn sudo pmset schedule sleep "06/19/11 23:40:00" expect { Password: echo "lovegun\r" }; interact; exit 
spawn sudo pmset schedule sleep 06/19/11 23:40:00 expect Password: send "password\r" 
Password: 

のように私のコードを見て: は、誰かが私のコードを見てすることはできますか?これには何が問題なのですか?あなたのパスワードが期待スクリプトに埋もれ必要があるとしている場合は

expect -c ' 
    proc abort {} { 
    puts "You have Authenticated\n" 
    exit 1 
    } 
    spawn sudo pmset schedule sleep "{query}" 
    expect { 
    Password:  { send "password\n" } 
    default   abort 
    } 
    puts "Finished OK\n" 
' 

は最後に、私はあなたがいないので、あなたはどちらか1)変更pmsetは、ユーザーID設定を実行することができ、その答え

+0

パスワードを送信する\ n "は動作しませんでした。私は今推測しているので、私は私の不正確な答えを取り下げました。あなたは 'puts" $ passwd \ n "'を使う必要がありますか?http://stackoverflow.com/questions/5575702/help-with-expectあなたの研究で-within-a-bash-scriptが有望に見えています....また、あなたのシェル用のタグをbashに追加しますか?あなたはあなたの問題にもっと目を向けるでしょう。がんばろう。 – shellter

+0

ありがとう、それは動作します。 :D – Lunayo

答えて

2

を見つけましたsudoを使用する必要があります。または、2)パスワードを入力する必要がないように、sudoにNOPASSWDアクセス権を与えてください。どちらの方法でも、パスワードをファイルに保存する必要はありません。