问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux shell脚本用到循环、控制语句

发布网友 发布时间:2022-04-24 20:39

我来回答

2个回答

热心网友 时间:2023-10-10 07:36

#!/bin/sh
# Name: useraddmuti
# Descripton: To add users to your system. Users can be list in a file.
# To exec this command your ID must be 0.
# Author: PopZslam@Linux.net
#-----------------------------------
chkUID(){
getUID(){
id|sed -e 's/(.*$//' -e 's/^uid=//'
}

if [ "`getUID`" -ne 0 ]
then
echo -e "\tYou are not root!"
exit 0
fi
}
chkUID
usagePRT(){
echo ${USAGE:='USAGE:' `basename $0` '-f namelistfile'}
}
chkFILE(){
if [ ! -z "`awk 'NF!=2{print NF;exit;}' $1`" ] && [ "`awk 'NF!=2{print NF;exit;}' $1`" -ne 2 ] ; then
echo -e "The file's format is not right!"
exit 0
fi
}

userCHK(){
for USER in `awk '{print $1;}' $1`
do
if grep -wq $USER /etc/passwd ; then
echo -e "The user($USER) has been added!"
exit 1
fi
if echo $USER|grep -wq "^[0-9].*" ; then
echo -e "The user($USER)'s name is wrong format!"
exit 1
fi
done
}

setOPT(){
echo -e "Now Let's set some options or you can use default settings."
setGRPNAME(){
while :
do
echo -e "Would you like to add a new group to add these users to it?"
echo -e "Enter YES to create a new group otherwise you must verify the group."
printf "Your Answer: "
read grpopt
case $grpopt in
yes)
printf "Please enter the group's name: "
read grpoptnew
if cat /etc/group|sed 's/:.*//'|grep -wq $grpoptnew ; then
echo "The group's name($grpoptnew) exist."
exit
else
grpname=$grpoptnew
echo -e "All these users will be added to group($grpname)..."
echo -e "Adding group ..."
if cp /etc/group /etc/group.$$ >; /dev/null 2>;&1 ; then
if groupadd $grpname ; then
echo -e "The group($grpname) is added!"
rm -f /etc/group.$$
break 1
else
echo -e "There's something wrong when adding the group($grpname)."
echo -e " *** Please recovered the group file. *** "
echo -e "You can cp /etc/group.$$ to /etc/group to recover."
fi
else
echo "Error! Please check the program or your disk space."
exit 0
fi
fi
;;
*) : ;;
esac
done
}
setGRPNAME
}

addUSER(){
if cp /etc/passwd /etc/passwd.$$ && cp /etc/shadow /etc/shadow.$$ ; then

for user in `sed 's/ .*//' $1`
do
pass=`awk '{
$1~/$name/
{print $2;exit}
} name=$user' $1`
if [ -z "$pass" ] ; then
echo -e "The passwd is used by default sun123."
pass=sun123
fi
if [ ${#pass} -lt 6 ] ; then
echo -e "The user($user)'s password is too short!"
echo -e "Use default password: sun123."
pass=sun123
fi
if useradd $user ; then
echo -e "The user($user) is added."
if echo $pass|passwd $user --stdin >; /dev/null 2>;&1 ; then
echo -e "The user($user)'s password is setted!"
else
echo -e "The user($user)'s password is NOT set!"
fi
else
echo -e "The user($user) is NOT add."
fi
done
rm -f /etc/passwd.$$ /etc/shadow.$$
else
echo -e "There something wrong when backup the passwd and shadow file."
fi
}

if [ $# -ne 2 ] ; then
usagePRT
exit 0
fi

case "$1" in
-f)
if [ -f "$2" ] ; then
echo -e "Reading usernamelist file""("$2")" "..."
chkFILE $2
userCHK $2
setOPT
addUSER $2
else
echo -e "There's no usernamelist file!"
fi
;;
*) usagePRT
exit 0
;;
esac

热心网友 时间:2023-10-10 07:37

#!/bin/bash
OLDIFS=$IFS
IFS=":"
while read a b c
do
[ "x$b" == "x" ] && echo "$a no password"
done </etc/passwd
IFS=$OLDIFS

检查系统里面那个用户木有密码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西蓝天学院和赣江职业技术学院哪个好? 江西有什么好的中专学校 什么是单点登录(SSO),以及单点登录的实现流程 前端实现单点登录(SSO) 前端单点登录如何实现 面试官:来说说单点登录的三种实现方式 为什么很多人不买哈弗H9 座机如何开通国内长途 座机如何申请 辽宁省出租车手续怎么办? Linux shell编程 --- 循环结构 2岁宝宝屁股上长痘痘脸上脚手都有 买苹果macbook还是Mac pro 宝宝屁股很红而且有痘痘,还破了皮,怎么样才能好 二十多天的男宝宝*长了痘痘,破皮后红红的一大片,该用什么药给他涂抹 宝宝半个月屁股上长了很多红色痘痘该怎么办 婴儿屁股长痘痘怎么办 宝宝屁股上长了好多红痘痘,有什么药膏可以用么 儿子的屁股上起了很多红痘痘,怎么回事 两个月大宝宝屁股起红痘痘怎么办? 孩子8个月了,屁股上有一片红色小痘痘,怎么回事? 房子对外出租,注意啥 oppoa59s怎样刷机了? 求助,oppoa59m刷机的时候直接点击底包 oppoa59m怎么刷机?我这样试了没有格式化手机的啊。。。 OPPOA59m手机怎么解锁。 OPPOA59m如何刷机 OPPOA59m可以刷A59s刷机包么·? 我的oppoa59m忘记密码了 想刷机但是刷机没有效果 密码还在 怎么办? oppoA59m忘记锁屏密码如何解锁 linux的shell脚本中,如何通过until循环实现 当本目录下存在restart文件夹的时候进行循环呢? linux shell 循环语句 linux shell脚本:while循环中调用另一个脚本遇到exit为什么会跳出循环... linux shell脚本的循环下载 Linux环境下shell脚本循环提取特定关键词之间的内容 UNTIL的LINUX SHELL脚本中的直到型循环 linux kill不能杀死shell脚本死循环 关于linux的shell脚本,无限循环问题 Linux shell 循环语句求助 linux shell 中while循环问题 linux中,运行带有无限循环的java的shell脚本,如何使shell脚本成功运行完并推出,同时java程序在后台运行 linux shell 脚本,重复执行命令。 linux shell 循环执行 备份文件 打豆浆需把黄豆浸泡一夜吗 煮豆浆的黄豆要泡水吗 用豆浆机做豆浆黄豆要不要泡? 开网店用办营业执照吗? 网店还需要营业执照吗? 大同出国留学机构,怎样才能找到有实力的中介 有没有玩明日之后不想玩送号的