Linux01-BASH的while流程控制41
2014-05-14 12:57
274 查看
一、循环流程控制
1、循环:while, until, for
2、break: 提前退出循环
continue:提前结束本轮循环,而进入下一轮循环;
如:计算100以内奇数的和;
#!/bin/bash
#
declare -i I=0
declare -i SUM=0
while [ $I -lt 100 ];do
let I++
if [ $[$I%2] -eq 0 ];then
continue
fi
SUM=$SUM+$I
done
echo $SUM
如:1000以内的正整数相加,当和大于5000时退出循环;
#!/bin/bash
#
declare -i SUM=0
for I in {1..1000};do
let SUM+=$I
if [ $SUM -gt 5000 ];then
break
fi
done
echo "I is $I."
echo "SUM is $SUM."
3、while的特殊用法
a)while的特殊用法一:
while :;do
STATEMENT
done
如:判断输入内容是否为文件,当触发quit时退出;
#!/bin/bash
#
while :;do
read -p "File path:" FILEPATH
[ $FILEPATH == 'quit' ] && break
if [ -e $FILEPATH ];then
echo "$FILEPATH exists."
else
echo "No$FILEPATH."
fi
done
echo "Quit."
b)while的特殊用法二:
while read LINE; do
STATEMENT
done < /PATH/TO/SOMEFILE
如:/etc/passwd中用户shell为bash的显示用户的用户名;只显示前6个用户;如果ID小于或等于505的则不显示用户;
#!/bin/bash
#
FILE=/etc/passwd
let I=0
while read LINE;do
[ `echo $LINE | awk -F : '{print $3}'` -le 505 ] && continue
[ `echo $LINE | awk -F : '{print $7}'` == '/bin/bash' ] && echo $LINE | awk -F : '{print $1}' && let I++
[ $I -eq 6 ] && break
done < $FILE
写一个脚本:
1、判断一个指定的bash脚本是否有语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出,其它任何键可以通过vim打开这个指定的脚本;
2、如果用户通过vim打开编辑后保存退出时仍然,则重复第一步中的内容;否则,就正常关闭退出;
参考答案:
#!/bin/bash
#
until bash -n $1 &> /dev/null;do
read -p "Syntax Error,[Q|q] to quit,Any input for editing:" CHOICE
case $CHOICE in
Q|q)
echo "Something wrong,quiting."
exit 5;;
*)
vim + $1;;
esac
done
。
本文出自 “Jessen Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1410999
1、循环:while, until, for
2、break: 提前退出循环
continue:提前结束本轮循环,而进入下一轮循环;
如:计算100以内奇数的和;
#!/bin/bash
#
declare -i I=0
declare -i SUM=0
while [ $I -lt 100 ];do
let I++
if [ $[$I%2] -eq 0 ];then
continue
fi
SUM=$SUM+$I
done
echo $SUM
如:1000以内的正整数相加,当和大于5000时退出循环;
#!/bin/bash
#
declare -i SUM=0
for I in {1..1000};do
let SUM+=$I
if [ $SUM -gt 5000 ];then
break
fi
done
echo "I is $I."
echo "SUM is $SUM."
3、while的特殊用法
a)while的特殊用法一:
while :;do
STATEMENT
done
如:判断输入内容是否为文件,当触发quit时退出;
#!/bin/bash
#
while :;do
read -p "File path:" FILEPATH
[ $FILEPATH == 'quit' ] && break
if [ -e $FILEPATH ];then
echo "$FILEPATH exists."
else
echo "No$FILEPATH."
fi
done
echo "Quit."
b)while的特殊用法二:
while read LINE; do
STATEMENT
done < /PATH/TO/SOMEFILE
如:/etc/passwd中用户shell为bash的显示用户的用户名;只显示前6个用户;如果ID小于或等于505的则不显示用户;
#!/bin/bash
#
FILE=/etc/passwd
let I=0
while read LINE;do
[ `echo $LINE | awk -F : '{print $3}'` -le 505 ] && continue
[ `echo $LINE | awk -F : '{print $7}'` == '/bin/bash' ] && echo $LINE | awk -F : '{print $1}' && let I++
[ $I -eq 6 ] && break
done < $FILE
写一个脚本:
1、判断一个指定的bash脚本是否有语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出,其它任何键可以通过vim打开这个指定的脚本;
2、如果用户通过vim打开编辑后保存退出时仍然,则重复第一步中的内容;否则,就正常关闭退出;
参考答案:
#!/bin/bash
#
until bash -n $1 &> /dev/null;do
read -p "Syntax Error,[Q|q] to quit,Any input for editing:" CHOICE
case $CHOICE in
Q|q)
echo "Something wrong,quiting."
exit 5;;
*)
vim + $1;;
esac
done
。
本文出自 “Jessen Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1410999
相关文章推荐
- Linux Bash Shell学习(十三):流程控制——while/util
- Linux进阶之bash编程(流程控制-while,break,continue)
- Windows脚本初探之PowerShell流程控制while
- linux shell流程控制语句实例讲解(if、for、while、case语句实例)
- Python(四)之Python流程控制(if、while、for)
- Linux进阶之bash编程(流程控制if-else)
- 【慕课笔记】第四章 流程控制语句 第6节 JAVA条件语句之while
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- 09流程控制,while,for,continue,break
- python学习8-流程控制-while
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- javascript笔记--流程控制、for、while、数据类型、js对象
- Linux Bash Shell学习(十):流程控制——for
- 数据库declare 运算符和流程控制(if,while,break,continue)
- [叩响C#之门]第4章 流程控制 4.5.2 do-while语句 4.5.3 for语句
- 流程控制-循环-while循环
- linux shell awk 流程控制语句(if,for,while,do)详细介绍
- Python流程控制的 for、 while、循环和嵌套词汇continue、break、range
- 【转】shell学习笔记(七)——流程控制之while
- 【慕课笔记】第四章 流程控制语句 第7节 JAVA条件语句之do...while