0

次のシナリオがあります。実行したい、自動的に生成されるシェル スクリプトがあります。スクリプトの一般的な形式は次のようになります。

 #!/bin/sh

 command_1 #something like mkdir dir1 or chmod -R 775 dir1, you get the idea 
 command_2
 ...
 ...
 command_n

私が言ったように、スクリプトは、スクリプトに記述されたコマンドをあまり制御できない方法で自動的に生成されます (スクリプトの目的は、ファズ テストに使用することなので、理にかなっています)。問題は、ある種のユーザー入力が必要なコマンドがあることです (たとえば、"chfs --some arguments" を実行すると root パスワードの入力を求められることがあります)。そのため、適切な入力が得られるまで、スクリプトは次のコマンドに渡されません。

だから、私の質問は次のとおりです。スクリプトが終了して他のすべてのコマンドを実行するように、そのようなスクリプトで遭遇したときにユーザー入力を必要とするコマンドをスキップする方法はありますか? どんなアイデアでも大歓迎です。

4

2 に答える 2

1

スクリプトを使用expectして、このような問題を回避できます。

    spawn /bin/bash yourscipt.sh
    expect "password:"
    # Send the password, and then wait for a shell prompt.
    send "xxxxx\r"

XXXX はパスワードです。

于 2013-09-23T21:24:19.233 に答える