Chinaunix首页 | 论坛 | 博客
  • 博客访问: 280184
  • 博文数量: 76
  • 博客积分: 1414
  • 博客等级: 中尉
  • 技术积分: 702
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-14 21:05
文章分类

全部博文(76)

文章存档

2013年(8)

2012年(68)

我的朋友

分类: LINUX

2012-04-07 00:00:15

in 和后面的数据集之间有空格
continue 结束本次循环,进行下一次循环
break 结束 for 

continue (continue 1)结束本次循环,进入下次循环,此循环体内,continue以下的代码不会被执行
continue 2 双层循环,跳出(结束)本次循环,结束上一层的本次循环,进入上一层的下一次循环
break (break 1) 跳出本次循环,
break 2 跳出(结束)循环体及上层循环体

1.格式1
for ((i=0;i<=5;i++));do
  echo $i
done
输出1,2,3,4,5 每行一个
i<=5,5也可能是个一个变量 $n

2.格式2
for i in {1,2,3,4,5};do
  echo $i
done
输出1,2,3,4,5 每行一个

i为变量,可以起任何名字如 j,abc
1.C式写法
for((i=1;i<=5;i++));do
 echo $i
done
2.遍历1到一个大于1的范围
for i in $(seq 5);do
 echo $i
done
3. 遍历一个目录内的文件
for i in `ls`;do
 echo $i
done
4.遍历数组
arr=(a b c d) #声明一个数组包含4个元素 a b c d
for i in ${arr[@]};do
  echo $i
done
5.遍历参数
cat > /tmp/a.sh<<\EOF
#!/bin/sh
for i in $*;do
 echo $i
done
EOF
sh /tmp/a.sh a b c
6.遍历文件
for File in /proc/sys/net/ipv4/conf/*/accept_redirects;do
 echo $File  
done
7.遍历给定字符串
for i in f1 f2 f3 ;do
 echo $i
done 
如有特殊字符或是关键字,把每一项用引号括起来
"f1" "f2" "f3"
8.遍历文件
for i in *.txt;do
 echo $i
done
9.遍历文件
for i in $(ls *.txt);do
 echo $i
done
for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组
10.LIST="rootfs usr data data2" 
for d in $LIST; do
  echo $d 
done
    用for in语句自动对字符串按空格遍历的特性,对多个目录遍历 
11.
for i in {1..10};do
 echo $i
done
12.
for i in stringchar {1..10};do
 echo $i
done
13.
awk 'BEGIN{for(i=1; i<=10; i++) print i}'


##为数组
for I in $(seq 1 5); do sum=$[ I + sum ]; done

#一句
for i in {1..10};do echo $i;done

##
IFSold=$IFS
IFS="\n"
IFS=$IFSold

#####################continue
for i in {1,2,3,4,5};do
  if [ $i = "2" ];then
    continue
  fi
  echo $i
done

1
3
4
5

################### break

for i in {1,2,3,4,5};do
  if [ $i = "3" ];then
    break
  fi
  echo $i
done

1
2
阅读(909) | 评论(0) | 转发(0) |
0

上一篇:shell 读取参数值

下一篇:shell 一些

给主人留下些什么吧!~~