Chinaunix首页 | 论坛 | 博客
  • 博客访问: 643943
  • 博文数量: 151
  • 博客积分: 3498
  • 博客等级: 中校
  • 技术积分: 1570
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-28 18:10
文章分类

全部博文(151)

文章存档

2014年(12)

2013年(17)

2012年(17)

2011年(5)

2010年(12)

2009年(2)

2007年(26)

2006年(22)

2005年(38)

分类: LINUX

2005-03-02 13:38:10

1 流控制
if cond1 如果条件判断不换行,则需要加;
then
command1
else
command2
fi
if then elif then fi

shell 阅读笔记-语句控制



1 流控制
if cond1 如果条件判断不换行,则需要加;
then
command1
else
command2
fi
if then elif then fi

2 case 语句
case 语句为多选择语句。可以用case 语句匹配一个值与一个模式,如果匹配成功,执行相
匹配的命令。case 语句格式如下:
case 值 in
模式1}
命令1
. . .
;;
模式2)
命令2
. . .
;;
esac
对匹配模式使用|,
3 缺省的变量赋值
:{$var:=$default} 如果var为空,则缺省赋值

4 for循环
for循环一般格式为:
for 变量名 i n列表
do
命令1
命令2
done

当变量值在列表里, f o r循环即执行一次所有命令,使用变量名访问列表中取值。命令可
为任何有效的s h e l l命令和语句。变量名为任何单词。I n列表用法是可选的,如果不用它, f o r
循环使用命令行的位置参数。
in列表可以包含替换、字符串和文件名.

5 while循环
while循环用于不断执行一系列命令,也用于从输入文件中读取数据,其格式为:
while 命令
do
命令1
命令2
. . .
done
虽然通常只使用一个命令,但在while 和do之间可以放几个命令。命令通常用作测试条
件。只有当命令的退出状态为0时,do和done之间命令才被执行,如果退出状态不是0,则循
环终止。命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。

例子:使用IFS读文件
输出时要去除冒号域分隔符,可使用变量I F S。在改变它之前保存I F S的当前设置。然后
在脚本执行完后恢复此设置。使用I F S可以将域分隔符改为冒号而不是空格或t a b键。这里有
个域需要加域分隔,
#!/bin/sh
#通过文件重定向输出到WHILE循环
SAVEDIFS=$IFS
IFS=:
while read var1 var2 var3
do
echo -e " $var1 var2 var3"
done
IFS=$SAVEDIFS
该file.txt文件以:作为域分割符
6 产生一个空的文件
>&filename

7 break 和continue
用于跳出和继续循环

阅读(793) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~