Shell

Shell脚本

#! 指定Shell解释器

# 脚本注释

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
vim example.sh #!/bin/bash #For Example BY linuxprobe.com pwd ls -al bash example.sh /root/Desktop total 8 drwxr-xr-x. 2 root root 23 Jul 23 17:31 . dr-xr-x---. 11 root root 4096 Jul 23 17:31 .. ./example.sh bash: ./Example.sh: Permission denied chmod u+x example.sh ./example.sh /root/Desktop total 8 drwxr-xr-x. 2 root root 23 Jul 23 17:31 . dr-xr-x---. 11 root root 4096 Jul 23 17:31 ..

接收参数

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
$0 脚本名称 $# 参数总数 $* 所有参数 $? 上一次命令返回值 $1 第一个参数 ./Example.sh one two three vim example.sh #!/bin/bash echo "当前脚本名称为$0" echo "总共有$#个参数,分别是$*" echo "第1个参数为$1,第5个为$5" sh example.sh one two three four five six 当前脚本名称为example.sh 总共有6个参数,分别是one two three four five six 第1个参数为one,第5个为five

文件测试参数

运算符作用
-d测试文件是否为目录类型
-e测试文件是否存在
-f判断是否为一般文件
-r测试当前用户是否有权限读取
-w测试当前用户是否有权限写入
-x测试当前用户是否有权限执行

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#返回0,目录存在 [ -d /etc/fstab ] echo $? 1 #返回0,文件存在 [ -f /etc/fstab ] echo $? 0 #-e 存在 [ -e /dev/cdrom ] && echo "Exist" Exist echo $USER root [ $USER = root ] || echo "user" su - linuxprobe [ $USER = root ] || echo "user" user exit logout [ ! $USER = root ] || echo "administrator" administrator [ ! $USER = root ] && echo "user" || echo "root" root

整数比较运算符

运算符作用
-eq是否等于
-ne是否不等于
-gt是否大于
-lt是否小于
-le是否等于或小于
-ge是否大于或等于

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[ 10 -gt 10 ] echo $? 1 [ 10 -eq 10 ] echo $? 0 free -m total used free shared buffers cached Mem: 1826 1244 582 9 1 413 -/+ buffers/cache: 830 996 Swap: 2047 0 2047 free -m | grep Mem: Mem: 1826 1244 582 9 free -m | grep Mem: | awk '{print $4}' 582 FreeMem=`free -m | grep Mem: | awk '{print $4}'` echo $FreeMem 582 [ $FreeMem -lt 1024 ] && echo "Insufficient Memory" Insufficient Memory

字符串比较运算符

运算符作用
=比较字符串内容是否相同
!=比较字符串内容是否不同
-z判断字符串内容是否为空

1 2 3 4 5 6 7 8 9
[ -z $String] echo $? 0 echo $LANG en_US.UTF-8 [ $LANG != "en.US" ] && echo "Not en.US" Not en.US

浙ICP备11005866号-12