先看一个例子吧!
#cat>cmd.file #创建一个文件,下面是命令行代码
echo Hello,guixiaolan!
sleep 10
pwd
ls
#chmod +x cmd.file #给该文件可执行权限,如果不给它可执行权限,你就可以直接#sh
cmd.file来执行它
#./cmd.file #执行该文件,下面是显示结果
Hello,guixiaolan! #休息10秒
/home/guixiaolan
11 cmd.file Desktop xiaoxiaoplay.swf
$0 表示命令名
$1,$2... 参数表列
$# 参数总个数
$* 所有参数
$? 最后一个返回值
下面我们来讲一些简单的操作!
1.if操作符
先看一个简单的例子:
#if true;echo guixiaolan;fi
guixiaolan
#
格式:if expression;then command;fi
上面的例子写成多行命令就是:
#if true
>then
>echo guixiaolan
>fi
guixiaolan
#
如果有第二个分支,则可以用else操作符
如果有很多分支,则可以用elif(else if)操作符
expression可以是下列的一些语句
#if [ -f /etc/passwd ];then echo file exists;fi #[]中间有空格的,千万要注意,否
则不会通过
file exists
#
说明:
-f file 如果file存在是普通文件,则返回true
-d file 文件file为目录
-r file file存在是可读的
-w file file存在是可写的
-x file file存在是可执行的
-l file file是链接文件
-s file file存在且其大小大于0
= 字符串比较字符,例子if [ $DIR=$HOME ]
[ "$HOME" ] 判断字符串是否定义,用法if [ "$HOME" ]
数字比较
-eq,-ne,-gt,-ge,-lt,-le分别是相等,不等,大于,大于等于,小于,小于等于
逻辑比较
-o,-a分别是OR和AND
例子
$if[ ! -f guixiaolan ];then touch guixiaolan;fi #如果不存在文件,则创建一个
exit命令,返回值
例子
$if true;then exit 6;fi
$echo $? #执行命令,显示最后所得到的返回值
6
2.for操作符
先看一个简单的例子
$ for VAL in 1 2 3 4;do echo $VAL;done
1
2
3
4
格式:for val in item1 item2;do commands;done
VAL是用户命名的环境变量,item1,item2是字符串表,记住它们之间用空白隔开
命令可以是多个命令,照例用;号隔开
3.while操作符
先看一个简单的例子
$ while [ $val -lt 4 ];do echo $val;done
上面的例子是一个无限循环
4.until操作符
修改上面的例子,下面的作用跟上面的相同,也是一个无限循环
$ until [ $val -gt 4 ];do echo $val;done
5.case操作符
# case $1 in
> gui)
> echo gui;;
> xiao)
> echo xiao;;
> esac
6.内部函数read 读入
# if true
> then read file
> echo $file
> fi
gui
gui
7.看一个简单的自定义函数吧
$ show(){ echo $1;echo $2;echo $3;}
$ #注意前面的一个{后面有一个空格,后面的一个}前面有一个;
$ show gui xiao lan
gui
xiao
lan