centos 脚本基础练习5

练习1
1, 设定变量FILE的值为/etc/passwd
2 ,依次向/etc/passwd 中的每个用户问好,并显示对方的shell,形如:Hello,root.your shell:/bin/bash
3,统计一共有多少用户
[root@localhost mscripts]# cat lx14.sh
#!/bin/bash
FILE=/etc/passwd
LINES=wc -l /etc/passwd | cut -d" " -f1
for I in seq 1 $LINES; do
echo "Hello, head -n $I /$FILE |tail -1 |cut -d: -f1.your shell is head -n $I /$FILE | tail -1 |cut -d: -f7"
done
echo "total $LINES users."
练习2
添加10个用户user1到user10 ,密码同用户名;但要求只有用户不存在的情况下才能添加
[root@localhost mscripts]# cat lx15.sh
#!/bin/bash
for I in seq 1 10; do
if ! id user$I &> /dev/null; then
useradd user$I && echo "user$I" | passwd --stdin user$I &> /dev/null
echo "user$I have finshed."
fi
done
扩展:
接受一个参数; add 添加用户user1...user10
del 删除用户user1...user10
其他 退出
[root@localhost mscripts]# cat lx16.sh
#!/bin/bash
for I in seq 1 10; do
if [ $1 = add ]; then
if id user$I &> /dev/null; then
echo "user$I exist."
else
useradd user$I
echo "user$I" | passwd --stdin user$I &> /dev/null
echo "user$I have been fished."
fi
elif [ $1 = del ]; then
userdel -r user$I > /dev/null
echo "user$I have been deleted."
else
echo "quit..."
exit 9
fi
done

练习 3
写一个脚本,分别显示当前系统上所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数;显示结果形如:BASH, 3USERS,they are: root, redhat , gentoo
NOLOGIN , 2 users, they are : bin ,ftp
[root@localhost mscripts]# cat lx17.sh
#!/bin/bash
NUMBASH=grep "bash$" /etc/passwd | wc -l
NULOGIN=grep "nologin$" /etc/passwd | wc -l
BASHUSERS=grep "bash$" /etc/passwd | cut -d: -f1
LOGINUSERS=grep "nologin$" /etc/passwd | cut -d: -f1
BASHUSERS=echo $BASHUSERS | sed 's@[[:space:]]@,@g'
LOGINUSERS=echo $LOGINUSERS | sed 's@[[:space:]]@,@g'
echo "BASH, $NUMBASH users, they are:"
echo "$BASHUSERS"
echo "NOLOGIN, $NULOGIN users, they are:"
echo "$LOGINUSERS"

练习 4
写一个脚本计算100以内所有奇数的和和所有偶数的和;
[root@localhost mscripts]# cat lx18.sh
#!/bin/bash
declare -i ODD=0
declare -i EVEN=0
for I in seq 1 100; do
if [ echo "$I%2" | bc -eq 0 ]; then
EVEN+=$I
else
ODD+=$I
fi
done
echo -e "ODD:$ODD.\nEVEN:$EVEN."

练习5
写一个脚本计算100以内能被3整除的所有整数的和;
[root@localhost mscripts]# cat lx19.sh
#!/bin/bash
declare -i WE=0
for I in seq 1 100; do
if [ echo $I%3 | bc -eq 0 ]; then
WE=$[$I+$WE]
fi
done
echo "$WE"

转载于:https://blog.51cto.com/ahtao/2047267

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值