for,while循环练习

1.编写能够自动生成一个6位随机密码的脚本

2.将一个点分十进制格式的IP地址转换成点分二进制格式
比如 255.255.255.255   -->  11111111.11111111.11111111.11111111

3.假设/opt/test/ 目录中有多个重要文件,编写脚本使用 md5sum 命令一次性判别目录中的文件是否有发生过改动

4.写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。

5.输出环境变量PATH的目录所包含的所有可执行文件

6.执行命令 mkdir -p /root/bin/aa/bb/cc/dd ; touch /root/bin/aa/bb/cc/dd/abc.txt,
   通过脚本输出环境变量PATH所包含的所有目录以及其中的子目录和所有不可执行文件
7.打印空心矩形

exit          直接退出当前shell脚本

break       直接把当前运行的循环终止了

break 2    当前运行的循环和上一个循环直接停止了

continue  continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。 可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。

  1.for,while循环练习_第1张图片

 2.

#!/bin/bash
 
read -p  "请输入一个ip地址:"  ip
a=1
b=0
while [  $a -le  4   ]
do
#取IP地址的“.”前面的首字段
  num=${ip%%.*}
  for i in {1..8}
  do
    var=$[num % 2]
    sum=$var$sum
    num=$[num / 2]
  done
#除去IP地址的首个字段,并将(除去首个字段的IP)重新赋值给变量
ip=${ip#*.}
let a++
echo -n  ${sum:0:8}
let b++
if [ $b -lt 4   ];then
   echo -n '.'
else
   break
fi
done
echo ""

3.

for,while循环练习_第2张图片

 

for,while循环练习_第3张图片

4.

   let sum+=500
;;
2)
  echo "你已购买了裤子500元"
   let sum+=500
;;
3)
  echo "您已购买了鞋子300元"
  let sum+=300
;;
4)
  echo "您已购买了帽子150元"
  let sum+=150
;;
5)
  echo "您已购买了袜子50元"
  let sum+=50
;;
*)
  echo "欢迎下次光临,您本次消费共计$sum元"
break
esac

read -p "您选择继续购物还是结算购物车?(y/n)" b
if [ $b = y ] ; then
continue
elif [ $b = n ] ; then
  echo "欢迎下次光临,您本次购物共计消费$sum元"
break
else
  echo "请您正确输入"      
fi
done

5.for,while循环练习_第4张图片

 6.

#!/bin/bash

listdir() {
for a in $1/*
do
  if [ -d $a ];then
     echo "$2$a"
     listdir $a " $2"
  elif [ ! -x $a ] && [ -f $a ];then
     echo "$2$a"
  fi
done
}

OLDIFS=$IFS
IFS=':'

for i in $PATH

do

  echo "$i" 

  listdir $i " "

done

IFS=$OLDIFS

7.用while循环打印空心矩形for,while循环练习_第5张图片

 空心矩形如图for,while循环练习_第6张图片

你可能感兴趣的:(java,服务器,开发语言)