web-dev-qa-db-ja.com

bashで「sudo」を使用して呼び出されているときに、「yes」または「y」をプログラムにパイプする方法は?

Yで呼び出しているときに、yesまたはSudoをプログラムにパイプする方法

このようにタイプできます

yes | command
yes | yum update

次のように、yyesからSudoを介してプログラムにパイプする方法は?

yes| Sudo command

yからのyescommandに渡され、Sudoに入る必要があり、Sudoは通常どおりパスワードを要求します。これどうやってするの?

4
Abhik Bose

Sudo-Sオプションを使用しない限り、標準入力からではなく、端末から直接パスワードを読み取ります。したがって

yes | Sudo command

yesから読み取らずに、パスワードを要求する必要があります(必要な場合)。次に、commandの標準出力から供給される標準入力を使用して、ルートとしてyesを実行します。

それでもうまくいかない場合は、Sudoの下でパイプライン全体を実行できます。

Sudo sh -c "yes | command"
12
Stephen Kitt