标签:bin $* 赋值 fun 最快 test cti read 速度
以下内容都是网上知识,只用于个人复习。#!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done
-----------------------------
#!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done
-----------------------------
#!/bin/bash for i in {1..10} do echo $(expr $i \* 3 + 1); done
运行结果:
4 7 10 13 16 19 22 25 28 31
例子:循环循环1-10
-----------------------------
#!/bin/bash awk 'BEGIN{for(i=1; i<=10; i++) print i}'
二、字符性循环
例子:将执行命令的结果循环
-----------------------------
#!/bin/bash for i in `ls -l | grep -v "^d" |awk -F" " '{print $NF}' | sed 1d`; do echo $i is file name\! ; done
例子:将传递给脚本或函数的所有参数循环
-----------------------------
#!/bin/bash for i in $* ; do echo $i is input chart\! ; done
例子:将f1和f2和f3依次循环
-----------------------------
#!/bin/bash for i in f1 f2 f3 ; do echo $i is appoint ; done
例子:使用变量方式循环
-----------------------------
#!/bin/bash list="rootfs usr data data2" for i in $list; do echo $i is appoint ; done
三、路径查找
-----------------------------
#!/bin/bash for file in /proc/*; do echo $file is file path \! ; done
-----------------------------
for3-2.sh #!/bin/bash for file in $(ls *.sh) do echo $file is file path \! ; done
四、遍历文件夹和文件
#!/bin/bash function getdir(){ for element in `ls $1` do dir_or_file=$1"/"$element if [ -d $dir_or_file ] then getdir $dir_or_file else echo $dir_or_file fi done } root_dir="/home/test" getdir $root_dir
#以下命令均不包含".",".."目录,以及"."开头的隐藏文件,如需包含,ll 需要加上 -a参数
#当前目录下文件个数,不包含子目录
ll |grep "^-"|wc -l
#当前目录下目录个数,不包含子目录
ll |grep "^d"|wc -l
#当前目录下文件个数,包含子目录
ll -R|grep "^-"|wc -l
#当前目录下目录个数,包含子目录
ll -R|grep "^d"|wc -l
五、逐行读取文件里面每一行内容(如果要对比这几种方法的速度,可以把他们都写成函数,然后调用函数的是加time命令)
1、while循环中执行效率最高,最常用的方法。
while read LINE do echo $LINE done < $FILENAME
2、重定向法;
cat $FILENAME | while read LINE do echo $LINE done
3、for循环方法(最快):
for i in `cat $FILENAME` do echo $i done
4、文件描述符法:
exec 3<&0 exec 0<$FILENAME while read LINE do echo $LINE exec 0<&<3
标签:bin $* 赋值 fun 最快 test cti read 速度
原文地址:http://blog.51cto.com/net881004/2139839