一、linux 从–stdin输入密码
for name in xp wrg lct
do
useradd $name
echo red | passwd --stdin $name
done
解释:passwd --stdin
n
a
m
e
是
更
改
name是更改
name是更改name变量的密码,$name变量指代上面for循环的三个用户xp ,wrg, lct
加上–stdin是接受echo后面的字符串(red)做为密码,密码是red
二、Ubuntu不能使用passwd的–stdin的解决办法
所以可以echo username:newoasswd | chpasswd
username
是用户名,newpasswd
是新密码。值得注意的是echo
后面不要忘了加引号把用户名和新密码引起来
最后说一个事情,目前发现Ubuntu的16.1系统没有–stdin和/etc/rc.local,所以建议大家初学Linux不要用Ubuntu。
ubuntu脚本自动输入sudo密码
不管用哪种方法sudo后面都有用到参数
-S
,这个参数是让sudo从标准输入流读取而不是终端设备**。
1 使用echo和管道命令
#!/bin/bash
echo password | sudo -S service runtime* status
2 使用文本块输入重定向
#!/bin/bash
sudo -S service talend-runtime* status<<EOF
password
EOF