0

我需要一个脚本来执行 sudo 命令而无需输入密码。在以下脚本中,我有一个奇怪的 bashstdin行为:

username@username-laptop:~$ sudo -Si | echo "password" 
password
root@username-laptop:~# exit
username@username-laptop:~$ sudo -Si | echo "password"
password
[sudo] password for rootname:

(密码是我机器上的root密码)

为什么第一次没有要求密码,而第二次(并且总是在那之后)?另外我不明白stdinbash 的工作原理,我的代码哪里有错误?

我知道直接将root密码输入命令是一个非常糟糕的主意,但我需要它才能正确执行。

4

1 回答 1

0

也许你应该尝试:

echo "Password" | sudo -Si

代替:

sudo -Si | echo "Password"

第一个命令的输出(在“|”之前)用作第二个命令的输入。

你应该知道第一个命令不能做任何屏幕输出,而第二个命令不能接收任何键盘输入,除非你做一些编程技巧......

于 2013-09-27T20:04:08.520 回答