以如下代码为例
sudo apt-get update
第一种方法
使用管道(上一个命令的 stdout 接到下一个命令的 stdin):
#!/bin/bash
echo password | sudo -S apt-get update
第二种方法
使用文本块输入重定向:
#!/bin/bash
sudo -S apt-get update << EOF
你的密码
EOF
说明:
在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell,即将‘你的密码’当做命令的输入
-S参数的作用
使用man命令查询sudo,对参数-S的说明如下:
Write the prompt to the standard error and read the password from the standard input instead of using the terminal device. The password must be followed by a newline character.
可见加上-S参数sudo才会从标准输入中读取密码,不加-S参数以上命令将起不到作用
原文地址:
https://segmentfault.com/a/1190000004950264
版权属于:soarli
本文链接:https://blog.soarli.top/archives/39.html
转载时须注明出处及本声明。