shell中的循环语句

FOR循环

for 变量 in 列表; do
  循环体
done

	如何生成列表:
	{1..100}
	`seq 起始数 步进长度 结束数`
	1,...,100
	declare -i SUM=0
		integer
		-x

遍历完成之后,退出;

CASE循环

case语句:选择结构

case SWITCH in 
value1)
  statement1
  ...
  ;;
value2)
  statement2
  ...
  ;;
*)
  statement3
  ...
  ;;
esac

若switch=value1则执行statement1
若switch=value2则执行statement2
若switch=*(任意字符)则执行statement3

WHILE循环

while循环:适用于循环次数未知的场景,要有退出条件
语法:
while CONDITION; do
    statment
done

进入循环:条件满足
退出循环:条件不满足    

UNTIL循环

until CONDITION; do
   statement
  ...
done
until

进入循环:条件不满足
退出循环:条件满足

练习

计算100以内所有正整数的和

	#!/bin/bash
	declare -i I=1
	declare -i SUM=0
	
	while [ $I -le 100 ]; do
	  let SUM+=$I
	  let I++
	done
	
	echo $SUM

练习:转换用户输入的字符为大写,除了quit

	#!/bin/bash
	#
	read -p "Input something: " STRING
	
	while [ $STRING != 'quit' ]; do
	  echo $STRING | tr 'a-z' 'A-Z'
	  read -p "Input something: " STRING
	done

练习:每隔5秒查看hadoop用户是否登录,如果登录,显示其登录并退出;否则,显示当前时间,并说明hadoop尚未登录:
	#!/bin/bash
	#
	who | grep "hadoop" &> /dev/null
	RETVAL=$?
	
	while [ $RETVAL -ne 0 ]; do
	  echo "`date`, hadoop is not log." 
	  sleep 5
	  who | grep "hadoop" &> /dev/null
	  RETVAL=$?
	done
	
	echo "hadoop is logged in."

写一个脚本,完成以下功能:
说明:此脚本能同一个repo文件中创建多个yum源的指向。
1、接受一个文件名作为参数,此文件存放至/etc/yum.repos.d目录中,文件名以.repo为后缀;要求,此文件不能事先存在,否则,报错;
2、在脚本中,提醒用户输入repo id:如果为quit,则退出脚本;否则,继续完成下面的步骤;
3、Repo name 以及baseurl的路径,而以后以repo文件的格式将保存至指定的文件中;
4、Enabled默认为1,而gpgcheck默认设置为0
5、此脚本会循环多次,除非用户repo id指定为quit

#/bin/bash
#
REPOFILE=/etc/yum.repos.d/$1
If [ -e $1 ];then
   Echo  “$1 exist.”
   Exit 3
Fi
Read -p “repository IDREPOID
Until [ $REPOID == “quit” ];do
	Echo “[$REPOID]>> $REPOFILE
	Read -p “repository name:REPONAME
	Echo “name=$REPONAME>> $REPOFILE
	Read -p “repository baseurl:REPOURL
	Echo “baseurl=$REPOURL>> $REPOFILE
	Echo -e ‘enabled=1\ngpgcheck=0>> $REPOFILE
	Read -p “repository ID:REPOID
done
until
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值