2014马哥Linux0217-4关于if语句检测用户的题目

虽然在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。

学无止境啊~

你可能感兴趣的:(linux,grep,if,整数测试)