以这个命令为例: sudo apt-get update

第一种方法,使用管道(上一个命令的 stdout 接到下一个命令的 stdin):

#!/bin/bash
echo password | sudo -S apt-get update

第二种方法,使用文本块输入重定向:

#!/bin/bash
sudo -S apt-get update << EOF 
你的密码
EOF

说明:
1、在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell,即将‘你的密码’当做命令的输入
2、 -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参数以上命令将起不到作用

标签: shell

添加新评论