文件测试用法:

	-e :判断文件是否存在,如果不存在返回的状态为假
	-f :判断文件是否为普通文件
	-d :判断是否为目录
	-x :判断当前用户是否可执行此文件
	-w :判断当前用户是否可写此文件
	-r :判断当前用户是否可读此文件
	如 [   -e  /etc/inittab    ]

if多分支语句

	if 条件一 ;then
	    执行语句
	elif 条件二 ;then
    执行语句
	。。。
	else
	    执行语句
	fi

写一个脚本,给定一个文件:如果是一个普通文件,就打印this is file。;如果是一个目录就打印this is directory。否则,此为无法识别之文件;脚本内容如下: #!/bin/bash

	FILE=$1    #$1是位置变量,表示接受脚本后面接的第一个参数,$2,$3 ...表示接第二,三...个参数
	#如果后面接的不止一个参数,只取第一个参数。

	# $# 是特殊变量,获取参数的个数($* 列出所有参数),如过参数小于一个,就exit 1 退出,退出时带上退出状态码1,
	# 如果不加上退出状态码,它默认的退出状态码就会以上一条命令的执行状态为准。
	NUM=$#
	if [ $NUM -lt 1 ];then
		echo "脚本后面需接一个参数,如:judge.sh /etc/passwd ."
		exit 1
	fi

	if [ -f $FILE  ];then
		echo "this is file."
	elif [ -d $FILE ];then
		echo "this is directory."
	else
		echo "无法识别此文件."
	fi

另外需要注意的是,如果参数比较少只有一两个可以用$1,$2...,那如果有几十上百个呢?我们不可能用一大堆$1...吧,此时我们要用到 shift语句,如shift 1 表示使用完上一个参数后,就将第一个参数丢掉,把第二个参数当作第一个参数,以此类推。如下脚本: #!/bin/bash echo $1 shift 1 echo $1 shift 1 echo $1 shift 1 echo $1

执行结果:

	[root@localhost ~]# sh shift.sh 1 2 3 4
	1
	2
	3
	4

另外如果要调试脚本,可以使用 bash -x xxx.sh 可以打印出脚本的执行过程,方便找出错误。