虽然在0218-1的视频中,马哥把这几道题目的答案都写出来了,但是我也是秉着多练习,熟能生巧的目的,还是自己又写了一遍,希望记忆可以深刻一些。现在把我自己写的作业贴出来:
练习:写一脚本,实现如下功能:
1、让用户通过键盘输入一个用户名
2、如果用户存在,就显示其用户名和UID;
3、否则,就显示用户不存在;
#!/bin/bash
#
read -t 20 -p "Please enter a username:" userName
if grep "^$userName\>" /etc/passwd &> /dev/null;then
echo "$userName:`id -u $userName`"
else
echo "$userName does not exists."
fi
练习:写一脚本,实现如下功能:
1、让用户通过键盘输入一个用户名,如果用户不存在就退出;
2、如果用户的UID大于等于500,就说明它是普通用户;
3、否则,就说明这是管理员或系统用户;
#!/bin/bash
#
read -t 20 -p "Please enter a username:" userName
if ! grep "^$userName\>" /etc/passwd &> /dev/null;then
echo -e "\033[31m$userName does not exists.\033[0m"
elif [ `id -u $userName` -ge 500 ];then
echo "User $userName is a normal user."
else
echo "User $userName is a system user."
fi
练习:写一脚本,实现如下功能:
1、让用户通过键盘输入一个用户名,如果用户不存在就退出;
2、如果其UID等于其GID,就说它是个"good guy"
3、否则,就说它是个“bad guy”;
#!/bin/bash
#
read -t 20 -p "Please enter a username:" userName
if ! grep "^$userName\>" /etc/passwd &> /dev/null;then
echo "User $userName does not exist."
exit 6
elif [ `id -u $userName` -eq `id -g $userName` ];then
echo "User $userName is a good guy."
else
echo "User $userName is a bad guy."
fi
扩展:判断当前系统的所有用户是goodguy 还是bad guy
#!/bin/bash
#
for userName in `cut -d: -f1 /etc/passwd`;do
if [ `id -u $userName` -eq `id -g $userName` ];then
echo "$userName is a good guy."
else
echo "$userName is a bad guy."
fi
done
练习:写一个脚本,实现如下功能:
1、添加10个用户stu1-stu10;但要先判断用户是否存在;
2、如果存在,就用红色显示其已经存大在
3、否则,就添加此用户;并绿色显示;
4、最后显示一共添加了几个用户;
#/bin/bash
#
for i in {1..10};do
if grep "^stu$i\>" /etc/passwd &> /dev/null;then
echo -e "\033[31mUser stu$i already exists."
exit 6
else
useradd stu$i && echo -e "\033[32mUser stu$i has been created."
fi
done
echo "There are $i users have been created."
练习:求200以内所有3的整数倍的正整数的和:
#!/bin/bash
#
for i in {1..200};do
if [ $[$i%3] -eq 0 ];then
let sum=$sum+$i
fi
done
echo "$sum"
真是学无止境啊,而且编程的时候,有时候脑子会卡住,我指,debug的时候,比如有一题中的整数测试里,用命令替换的命令里,两面都写了-u,结果答案就得不到想要的结果,自己就是检查不出来。其实应该一遍是-u,一遍是-g。
学无止境啊~