例6、
写一个脚本:
给定一个用户,想办法判断此用户的UID跟其基本组GID是否一致;
如果一致,就将此用户的用户名添加至/tmp/goodusers,并显示这是个好人;
否则,就将此用户的用户名添加至/tmp/badusers,并显示此人是坏蛋。
答案:

#!/bin/bash
read -t 10 -p "Give a username:" USERNAME   //用read命令和键盘进行交互,让用户输入一个命令,-t后跟的是等待输入的超出时间

if ! id $USERNAME &> /dev/null || [ -z $USERNAME ] ;then
  echo "No such username ." 
  exit 4                                   // 判断用户存在与否,不存在或为空即退出
fi

if [ `id -u $USERNAME` -eq `id -g $USERNAME` ] ;then         //根据命令找出用户UID和GID,判断是否相等
  echo "$USERNAME" >> /tmp/goodusers
  echo "He is a good user."                                  //结果输入到相应的文件,并显示是好人还是坏人
else
  echo "$USERNAME" >> /tmp/badusers
  echo "He is a bad user."
fi

例7、
写一个脚本:
1、设定变量FILE的值为/etc/passwd
2、依次向/etc/passwd中的每个用户问好,并显示对方的shell,形如: 
 Hello, root, your shell: /bin/bash
3、统计一共有多少个用户
答案:

#!/bin/bash
#
FILE=/etc/passwd   //定义变量
declare -i usernum=0  //声明一个变量,其值为整型
USERNAME=`cat $FILE | cut -d: -f1`   //命令取第一列的用户名
for I in $USERNAME ; do              //for循环遍历所有用户,输出所有用户信息
  USHELL=`grep "^$I:" $FILE | cut -d: -f7`  //找出该用户所在行然后剪切它的shell信息
  echo "Hello, $I , your shell: $USHELL"    //输出信息
  usernum+=1                                //统计用户数量
done
  echo "Total num is :$usernum"            //这一步还可以直接用echo"`cat $FILE | wc -l`"
 
例8、
写一个脚本:
添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加;
答案:
附加:这道题显然很简单的,但是要用对方法,像我第一次做先判断了用户存在的情况,却出现了立即退出的情况,
以下的情况你也知道,其他的当然就没执行
所以,分析这道题,只需判断用户不存在的情况就好!!
#!/bin/bash
#
for I in $(seq 1 10);do
  if ! id user$I &> /dev/null ;then
    useradd user$I
  fi
done

例9、
写一个脚本: sum3.sh
计算100以内所有能被3整除的正整数的和
答案:
#!/bin/bash
#
declare -i sum=0  //定义变量
for I in $(seq 1 100) ;do  //for 循环遍历1到100
  if [$[$I%3] -eq 0 ] ;then  //对所循环到的数值对3取余,如果等于0说明其能被3整除
    sum+=$I   //对所取到的值进行整加
  fi
done
echo "$sum"   //输出最后加起来的结果

例10、
写一个脚本:
计算100以内所有奇数的和以及所有偶数的和;sum1.sh  sum1-1.sh
答案:
第一种方法:
和上一题的方法一样哦(大家应该明白这个过程的,就不解析了哦)
#!/bin/bash
#
declare -i sum1=0 sum2=0
for I in $(seq 1 100);do
  if [$[$I%2] -eq 0 ] ;then
    sum1+=$I
 else
 sum2+=$I
  fi
done
  echo "the even sum is $sum1."
  echo "the odd sum is $sum2."

第二种方法:

#!/bin/bash
#
declare -i sum1=0 sum2=0   //先定义两个变量,分别代表奇数和偶数的和
for I in $(seq 1 2 100) ;do  //  1和100之间的2代表步长,就是for循环第一个数后,循环下一个数要以2为单位,即全是奇数
  sum1+=$I                   //  得到的值进行加值
done
  echo "the odd sum is $sum1"  //输出结果
for I in $(seq 2 2 100) ;do    // 这个以2为第一个数,取值则全是偶数了
  sum2+=$I                     //加值运算
done
  echo "the even sum is $sum2"  // 输出结果