您的位置:首页 > 运维架构 > Linux

linux命令练习:for循环语句练习

2016-10-22 00:57 295 查看
练习一:写一个脚本1、添加10个用户user1到user10,密码同用户名,但要求只有用户不存在的情况下才能添加;扩展:接受一个参数:add:添加用户user1..user10del:删除用户user1..user10其他,退出

#!/bin/bash
#program:
#练习添加10个用户
#history donggen 2016-10-21-22:10
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH

if [ $1 == "add" ]; then
for I in {1..10}; do
if id user$I &> /dev/null ;then
echo "the user$I is exist"
else
useradd user$I
echo "user$I" | passwd --stdin user$I
echo "user$I is add successful"
fi
done
elif [ $1 == "del" ]; then
for I in {1..10}; do
if id user$I &> /dev/null; then
userdel -r user$I
echo " user$I is del successful"
else
echo "NO such user$I"
fi
done
else
echo "the $1 is not legol command"
fi
练习二:写一个脚本

计算100以内所有能被3整除的正整数的和;取模,取余:%
#!/bin/bash
#program:
#计算100以内所有能被三整除的正整数的和
#history donggen 2016-10-21-23:10
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH
declare -i SUM=0

for I in {1..100}; do
let REMAINDER=$I%3
if [ $REMAINDER -eq 0 ]; then
let SUM=$SUM+$I
fi
done
echo "$SUM"

练习三:
写一个脚本
分别显示当前系统上所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,
并统计各类shell下用户的总数,显示结果如下:
BASH,3users,they are:root,redhat,gentoo
NOLOGIN,2users,they are:bin,ftp
#!/bin/bash
#program:
#显示当前shell下面的用户
#history donggen 2016-10-21-23:40
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH
BASHNUM=`grep '/bash\>' /etc/passwd | wc -l`
NOLOGINNUM=`grep '/nologin\>' /etc/passwd | wc -l`

for I in `seq 1 $BASHNUM`; do
echo "`grep '/bash\>' /etc/passwd | head -n $I | tail -1 | cut -d: -f1`" >> /test/BASH.txt
done

for I in `seq 1 $NOLOGINNUM`; do
echo "`grep '/nologin\>' /etc/passwd | head -n $I | tail -1 | cut -d: -f1`" >> /test/NOLOGIN.txt
done
echo "BASH ,"$BASHNUM"users,they are:" ` cat /test/BASH.txt`
echo "NOLOGIN ,"$NOLOGINNUM"users,they are:" `cat /test/NOLOGIN.txt`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  用户 shell 下面