ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell脚本应用

2020-06-13 19:36:30  阅读:213  来源: 互联网

标签:脚本 shell name 账号 passwd cat 应用 echo createName


探究实现

撰写一个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}'	

补充将##账号的UID是## 输出改为 某某账号的UID是多少

#!/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

结果截图
在这里插入图片描述

标签:脚本,shell,name,账号,passwd,cat,应用,echo,createName
来源: https://blog.csdn.net/qq_43661408/article/details/106716430

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有