我需要一个脚本来执行sudo命令而不需要输入密码。
在以下脚本中,我有一个奇怪的bash stdin
行为:
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密码)
为什么第一次没有请求密码,并且已经在第二次(并且总是在那之后)?另外我不明白stdin
在bash中是如何工作的,我的代码中的错误在哪里?
我知道直接在命令中输入root密码是一个非常糟糕的主意,但我需要它才能正确执行。
答案 0 :(得分:0)
也许你应该试试:
echo "Password" | sudo -Si
而不是:
sudo -Si | echo "Password"
第一个命令的输出(在" |"之前)用作第二个命令的输入。
你应该知道第一个命令不能做任何屏幕输出,而第二个命令不能接收任何键盘输入,除非你做一些编程技巧...