Shell脚本展示

Shell脚本展示

学好Shell脚本的重中之重就是先打好基础,这里就展示一些最基本脚本代码。
1.99乘法口诀表

#!/bin/bash
for ((n=1;n<=9;n++))
do
 for ((i=1;i<=$n;i++))
 do
 echo -n "$n x $i = `expr $n \* $i` "
 if [ $i -eq $n ];then
  echo -e '\n'
 fi
 done
done

2.批量添加或删除用户

#!/bin/bash
      i=1
      del=1
[while true
do
read -p "是否添加用户或者删除用户?(y/n)退出按任意键。" xz
 case $xz in
  y)
    while [ $i -le 20 ]
    do
      useradd stu$i
      echo "123456" | passwd --stdin stu$i &> /dev/nell
      let i++
      echo "用户添加成功!" 
    done
      i=1
    ;;

  n)
    while [ $del -le 20 ]
    do
      userdel -r stu$del &> /dev/nell
      let del++
      echo "用户删除成功!"
    done
      del=1
    ;;

   *)
    echo "退出程序。"
    break
 esac
done
  1. 1~50的累加
#!/bin/bash
i=1
sum=0
until [ $i -eq 51 ]
do
  sum=`expr $i + $sum`
  let i++
done
  echo $sum

4.判断一个五位数是否为回文数字

#!/bin/bash
echo "这是一个判断一个数是否为回文数字的脚本。"
read -p "是否开始?(y/n)" xz
while true
do
  if [ $xz = "y" ];then
    read -p "请输入一个五位数" a
#万位
b=`expr $a / 10000`
#千位
c=`expr $a % 10000 / 1000`
#百位
d=`expr $a % 10000 % 1000 / 100`
#十位
e=`expr $a % 10000 % 1000 % 100 / 10`
#个位
f=`expr $a % 10000 % 1000 % 100 % 10`
     [ $b -eq $f ]&&[ $c -eq $e ]&&echo "这是一个回文数字。"||echo "这不是回文数字。"
     read -p "还要继续吗?(y/n)" jx
       if [ $jx = "y" ];then
          echo "请再次输入。"
          continue
         else
          echo "退出"
          break
       fi
  else
     echo "退出"
     break
  fi
done

5.输入任意一组数字找出其中的最大值

#!/bin/bash
bbb=($*)
max=${bbb[0]}
for ((i=1;i<=$#-1;i++))
do
  if [ $max -lt ${bbb[$i]} ];then
     max=${bbb[$i]}
  fi
done
echo "你一共输入了$#个数字,其中最大的数字为:$max。"
  1. 输入一组数字按照降序排列
#!bin/bash
a=0
read -p "请输入一组数字:" n
aaa=($n)
 for ((i=0;i<=${#aaa[*]}-1;i++))
  do
     for ((g=0;g<=${#aaa[*]}-2;g++))
      do
        if [ ${aaa[$g]} -lt ${aaa[$g+1]} ];then
          a=${aaa[$g]}
          aaa[g]=${aaa[$g+1]}
          aaa[g+1]=$a
        fi
      done
  done
echo ${aaa[*]}

7.在商场购物买东西

#!/bin/bash
swjg=0
rypjg=0
yfjg=0
while true
do
read -p "有以下三种商品类别:1.食物 2.日用品 3.衣服 4.结账,请选择商品类别序号:" xz
 if [ $xz -eq 1 ];then
   while true
   do
    read -p "请选择你想要的食物:1.白菜100元 2.青菜50元 3.韭菜200元 4.退出选择:" sw
       case $sw in
        1)
          let swjg+=100
          echo "买了一个白菜。"
          echo -e "购买食物已经花了$swjg元。\n"
          ;;
        2)
          let swjg+=50
          echo "买了一个青菜。"
          echo -e "购买食物已经花了$swjg元。\n"
          ;;
        3)
          let swjg+=200
          echo "买了一个韭菜。"
          echo -e "购买食物已经花了$swjg元。\n"
          ;;
        4)
          echo "退出购买食物。"
          break
          ;;
       esac
   done
  elif [ $xz -eq 2 ];then
    while true
 do
    read -p "请选择你想要的日用品:1.洗发水50元 2.洗衣粉74元 3.肥皂25元 4.退出选择:" ryp
       case $ryp in
        1)
          let rypjg+=50
          echo "买了一个洗发水。"
          echo -e "购买日用品已经花了$rypjg元。\n"
        ;;
        2)
          let rypjg+=74
          echo "买了一个洗衣粉。"
          echo -e "购买日用品已经花了$rypjg元。\n"
        ;;
        3)
          let rypjg+=25
          echo "买了一个肥皂。"
          echo -e "购买日用品已经花了$rypjg元。\n"
        ;;
        4)
          echo "退出购买食物。"
          break
        ;;
       esac
    done
   elif [ $xz -eq 3 ];then
      while true
       do
        read -p "请选择你想买的衣服,1.衬衫500元 2.羽绒服300元 3.女装1000元 4.退出购买:" yf
          case $yf in
         1)
           let yfjg+=500
           echo "买了一件衬衫。"
          echo -e "购买衣服已经花了$yfjg元。\n"
   ;;
         2)
           let yfjg+=300
           echo "买了一件羽绒服。"
          echo -e "购买衣服已经花了$yfjg元。\n"
         ;;
         3)
           let yfjg+=1000
           echo "买了一件女装。"
          echo -e "购买衣服已经花了$yfjg元。\n"
         ;;
         4)
           echo "退出购买衣服。"
           break
         ;;
          esac
       done
        elif [ $xz -eq 4 ];then
         [ $swjg -ge 500 ] &&swjg=`expr $swjg \* 8 / 10`&&echo "购买食物大了8折。"
         [ $rypjg -ge 300 ] &&rypjg=`expr $rypjg \* 9 / 10`&&echo "购买日用品打了9折。"
         [ $yfjg -ge 1000 ] &&yfjg=`expr $yfjg \* 7 / 10`&&echo "购买衣服打了7折。"
          echo "购买食物花了$swjg元,购买日用品花了$rypjg元,购买衣服花了$yfjg元,一共花了`expr $swjg + $rypjg + $yfjg`元。"
                break
 fi
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值