当前位置 博文首页 > 超负荷小生的博客:shell脚本简单应用实例-查看系统账号-并读取
撰写一个shell脚本实现以下功能:
1、在系统中创建本宿舍所有人的账号,用户名是姓名首字母手写,密码是abc123;
2、将系统中所有账号的账号名导出到/tmp目录下的name.txt文件当中
3、最后从/etc/passwd文件中读取账号信息,并在屏幕当中按照以下形式输出信息“##账号的uid是##”
创建脚本:vim shell.sh
#!/bin/bash
if [ $# != 1 ];then
echo "Usage:root/batchusers"
elif [ -f $1 ];then
for line in `cat $1`
do
createName=`echo $line | cut -d : -f1`
useradd -s /bin/bash $createName
echo $createName:"abc123" | chpasswd
echo "created user: $createName"
done
username=`cat /etc/passwd | awk -F: '$3>=0' | cut -f 1 -d :`
echo $username >> /tmp/name.txt
for uid in `cat /etc/passwd | awk -F: '$3>=0' | cut -f 3 -d :`
do
echo '##账号的uid是##'$uid
done
else
echo "input file not found"
fi
使用
先创建一个文件,里面填写自己的需要添加的用户
vim user.txt
内容为
ZhangSan
LiSi
如下运行,要保证shell 和user.txt两个文件的位置在同一处
sh shell.sh user.txt
结果
#!/bin/bash
#in循环宿舍中的成员,可以自己添加
for name in ZhangSan LiSi
do
useradd ${name} #创建账号
echo "123abc" | passwd --stdin ${name} #设置密码
done
#将所有用户名输出到name.txt,cat取出passwd的所有,
#cut进行截取 -f 1取得第一个参数,-d :用冒号做分割线
#bbb : x : 1007 : 1007: :/home/bbb :/bin/bash
#注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
echo `cat /etc/passwd | cut -f 1 -d:` >> /tmp/name.txt
#屏幕输出
#同样也是以冒号为分隔符$1 代表第一个参数 ,$3是第三个参数
cat /etc/passwd |awk -F ":" '{print $1"账号的UID是"$3}'
#!/bin/bash
if [ $# != 1 ];then
echo "Usage:root/batchusers"
elif [ -f $1 ];then
for line in `cat $1`
do
createName=`echo $line | cut -d : -f1`
useradd -s /bin/bash $createName
echo $createName:"abc123" | chpasswd
echo "created user: $createName"
done
username=`cat /etc/passwd | awk -F: '$3>=0' | cut -f 1 -d :`
echo $username >> /tmp/name.txt
cat /etc/passwd |awk -F ":" '{print $1"账号的UID是"$3}'
else
echo "input file not found"
fi
结果截图