Linux Shell编程基础

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  3、 逻辑操作! 反:与一个逻辑值相反的逻辑值

  -a 与(and):两个逻辑值为“是”返回值才为“是”,反之为“否”

  -o 或(or):两个逻辑值有一个为“是”,返回值就为“是”

  4、 文件操作

  文件测试表达式通常是为了测试文件的信息,一般由脚本来决定文件是否应该备份、复制或删除。由于test关于文件的操作符有很多,我们只列举一些常用的。

  -d 对象存在且为目录返回值为“是”

  -f 对象存在且为文件返回值为“是”

  -L 对象存在且为符号连接返回值为“是”

  -r 对象存在且可读则返回值为“是”

  -s 对象存在且长度非零则返回值为“是”

  -w 对象存在且可写则返回值为“是”

  -x 对象存在且可执行则返回值为“是”

  file1 ?Cnt(-ot) file2 文件1比文件2新(旧)

  四、循环结构语句

  shell常见的循环语句有for循环、while循环、until循环

  for 循环

  语法:for 变量 in 列表

  do

  操作

  done

  注:变量是要在循环内部用来指代当前所指代的列表中的那个对象的。

  列表是在for 循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。

  例:删除垃圾箱中的所有.gz文件

  #delete all file with extension of “gz” in the dustbin

  for I in $HOME/dustbin/*.gz

  do

  rm ?Cf $i

  echo “$i has been deleted!”

  done

  执行结果如下:

  [beichen@localhost bin]$.f_rmgz

  /home/beichen/dustbin/nessus-4.0.0.2.tar.gz has been deleted!

  /home/beichen/dustbin/gftp-2.2.1.tar.gz has been deleted!

  While循环

  语法:while 表达式

  do

  操作

  done

  只要while表达式成立,do和done之间的操作就一直会进行。

  until循环

  语法:until 表达式

  do

  操作

  done

  重复do和done之间的操作直到表达式成立为止。

  例:

  #test until

  #add from 1 to 100

  total=0

  num=0

  until test num ?Ceq 100

  do

  total=`expr $total + $num` //注意,这里的引号是反引号,下同

  num=`expr $num+1`

  done

  echo “The result is $total”

  执行结果如下:

  [beichen@localhost bin]$until

  The result is 5050!

  五、条件语句

  Shell程序中的条件语句主要有if语句、case语句;

  If语句

  语法:if 表达式1 then

  操作

  elif 表达式2 then

  操作

  elif 表达式3 then

  操作

  …..

  else

  操作

  fi

  Linux里的if的结束标志是将if反过来写成fi;而elif其实是else if的缩写

  其中elif理论上可以有无限多个。

  Case语句

  语法:case 字符串 in

  值1|值2)

  操作::

  值3|值4)

  操作::

  值5|值6)

  操作::

  *}

  操作::

  esac

  case的作用就是当字符串与某个值相同是就执行那个值后面的操作。如果同一个操作对于多个值,则使用”|”将各个值分开。在case的每一个操作的最后面都有两个”::”,分号是必须的。

  例:

  case $USER in

  beichen)

  Echo “You are beichen!”;;

  liangnian)

  echo “You are liangnian”; //注意这里只有一个分号

  echo “Welcome!”;; //这里才是两个分号

  root)

  echo “You are root!:echo Welcome!”;; //将两命令写在一行,用一个分号作为分隔符

  *)

  echo “Who are you?$USER?”;;

  esac

  执行结果:

  [liangnian@localhost bin]$ test

  You are liangnian

  Welcome!

http://www.5dmail.net/html/2006-10-19/20061019223915.htm

[1][2]

在前进的路上,主动搬开别人脚下的绊脚石,有时往往也是为自己铺路。

Linux Shell编程基础

相关文章:

你感兴趣的文章:

标签云: