昨天的脚本,我想添加一个“批量添加管理员”的功能,实际上只是改一下原来的shell,把/sbin/nologin改为一个shell的路径,如/bin/sh。
添加的管理员的数目一般,不多,只有几个。可以通过脚本的参数传入脚本。
#!/bin/sh
Home_Dir=/home/ibmtc/Personal
PID=1001
while read line;
do
#User Name is Lower
name=`echo $line | tr [:upper:] [:lower:]`
#But the original directory is Upper
echo $name:x:$PID:$PID::$Home_Dir/$line:/sbin/nologin >> usersfile
let "PID+=1"
done
for name in $@
do
sed -i "/$name/s/\/sbin\/nologin/\/bin\/sh/" usersfile
done
这里,利用一个变量来作为pattern,直接的使用
sed -i ‘/$name/s/\/sbin\/nologin/\/bin\/sh/’ usersfile
是不行的
感谢Linuxsir上的热心网友回答我的问题,找到了解决方法。
sed -i '/'$name'/s/\/sbin\/nologin/\/bin\/sh/' usersfile
sed -i "/$name/s/\/sbin\/nologin/\/bin\/sh/" usersfile
阅读(3412) | 评论(0) | 转发(0) |