在bash中使用“sudo”调用时,如何将“yes”或“y”输入到程序中?

Abh*_*ose 5 pipe sudo yes

调用时如何通过管道将 aYyes传递到程序sudo

我们可以这样输入

yes | command
yes | yum update
Run Code Online (Sandbox Code Playgroud)

如何通过如下方式将yfrom管道yes传输到程序中sudo

yes| sudo command
Run Code Online (Sandbox Code Playgroud)

yyesIS传递到command,应该进入sudo,并sudo应索要密码正常。我怎样才能做到这一点?

Ste*_*itt 13

sudo除非使用该-S选项,否则直接从终端读取密码,而不是从其标准输入中读取。因此

yes | sudo command
Run Code Online (Sandbox Code Playgroud)

应该提示输入密码(如有必要),而不从 读取yes,然后command以 root 身份运行,其标准输入来自yes的标准输出。

如果这不起作用,您可以sudo使用类似的东西运行整个管道

sudo sh -c "yes | command"
Run Code Online (Sandbox Code Playgroud)