linux基础知识----Just for Tencent(shell_循环命令)

1.for语句

for  var  in  list 

do 

           commands;

done

for  test in  Arizona  Arkansas   "New York"  Colorado  “this'll”    //注意list写法

   当列表中包含单引号时,这部分内容需要用双引号,以让他们保持一个整体,默认是以空格作为分隔符,New York 是一个整体,中间有空格,也需要使用双引号

do

         commands

done

每一次循环都把list中的下一个值赋给$test

list="Arizona  Arkansas Arizona  Arkansas"

list=$list" hello"   //在原来的list上增加一个值

for state in $list   //不需要冒号,从变量中获取值

do

echo  "Have  you ever visited $state"

done

file="states"    //这是跟脚本在同一个目录下的一个文件

for state in $file

do

  echo "visit beautiful  $state"

done

2.更改字段分隔符

bash shell会将 空格、制表符、换行符当作分隔符

file="states"    //这是跟脚本在同一个目录下的一个文件

IFS.OLD=$IFS    //先保存

IFS=$'\n'    //表示把换行符作为分隔符,默认是空格,临时修改

for state in $file

do

echo "visit beautiful  $state"

done

IFS=$IFS.OLD  //恢复

指定多个分隔符

IFS=$'\n':;"    同时将换行\n 冒号  分号  双引号 作为分隔符

3.用通配符读取目录

可以用for命令自动遍历目录中的文件

for  file in /home/rich/test/*       //注意*号

       if [ -d "$file" ]                //注意引号

      then

              echo  "$file is a  directory"

     elif [ -f  "$file" ]

     then 

                    echo  "$file is a file"

    fi

6.C语言风格的for命令

for (( a=1,b=10;a<10;a++,b--))

do

     echo  "$a-$b"

done

7.while循环

while test command   //[ $var1 -gt 0 ]

do

    commands;

done

你可能感兴趣的:(linux基础知识----Just for Tencent(shell_循环命令))