shell学习(二)

1.设置变量的作用范围

export  变量名

export 变量名=变量值

2.整数变量的运算

expr 变量1 运算符 变量2 【运算符 变量3】

+ 加法运算;- 减法运算;\* 乘法运算;/ 除法运算;% 取余运算符

3.test命令

测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则返回其他数值

格式 test 条件表达式

      [ 表达式 ](中括号与表达式之间至少有一个空格,一般用于if等条件测试语句)

[root@localhost ~]# [  -d /media/cdrom  ] (判断是否为文件夹,0为是,1为否)
[root@localhost ~]# echo $?
0
[root@localhost ~]# [  -d /media/cdrom/Server  ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -d /media/cdrom ] && echo "YES"(当条件成立时输出YES)
YES 

参考地址:http://blog.csdn.net/cjsafty/article/details/6669755

(1)test文件测试:
-b file     若文件存在且是一个块特殊文件,则为真
-c file     若文件存在且是一个字符特殊文件,则为真
-d file     若文件存在且是一个目录,则为真
-e file     若文件存在,则为真
-f file     若文件存在且为一个规则文件,则为真
-g file     若文件存在且设置了SGID位的值,则为真
-h file     若文件存在且为一个符号链接,则为真
-k file     若文件存在且设置了“sticky”位的值,则为真
-p file     若文件存在且为一已命名管道,则为真
-s file     若文件存在且其大小大于零,则为真
-u file     若文件存在且设置了SUID位的值,则为真
-r file     若文件存在且可读,则为真
-w file     若文件存在且可写,则为真
-x file     若文件存在且可执行,则为真
-o file     若文件存在且被有效用户ID所拥有,则为真
 
(2)test字符串比较
-z string         若string长度为0,则为真
-n string         若string长度不为0,则为真
string1 = string2    若两个字符串相等,则为真
string1 != string2   若两个字符串不相等,则为真
 
(3)test命令的数字比较操作符
int1 -eq int2      若int1等于int2,则为真
int1 –ne int2      若int1不等于int2,则为真
int1 –lt int2      若int1小于int2,则为真
int1 –le int2      若int1小于等于int2,则为真
int1 –gt int2      若int1大于int2,则为真
int1 –ge int2      若int1大于等于int2,则为真
 
(4)test复合表达式
! expr                     若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2           若expr1和expr2都为真,则为真
expr1 -o expr2           若expr1和expr2有一个为真,则为真

4.特殊shell变量

$0当前脚本文件名

$n传递给脚本或函数的参数。n是一个数字,表示第几个参数

$#传递给脚本或函数的参数个数

$*传递给脚本或函数的所有参数

$@传递给脚本或函数的所有参数

$?上个命令退出状态或函数返回值,成功为0失败为1

$$当前shell脚本的进程ID,即脚本所在的进程ID

注:$*与&@都表示传递给函数或脚本的所有参数,不被引号包含时,都以“$1”,“$2”,“$3”的形式输出所有参数,当被""包含时,$*以“$1,$2,$3”的形式输出所有参数,而$@会将参数分开,以“$1”,“$2”,“$3”的形式输出。

5.整数值比较

[ 整数1 操作符 整数2]

[root@localhost ~]# who | wc -l
7
[root@localhost ~]# [ $(who | wc -l) -gt 5 ] && echo "Too many." 
Too many.
[root@localhost ~]# [ $(who | wc -l) -ge 10 ] && echo "> = 10."

[root@localhost ~]

注:who 可以得知目前有哪些用户登陆系统,单独执行who会列出登录账户,使用的终端机,登入时间以及从何处登入等。

-eq:等于 -nq:不等于 -gt:大于 -lt:小于 -le:大于或等于 -ge:大于或等于

6.字符串比较

[ 字符串1 -字符串2 ]

[ 字符串1 !=字符串2]

[-z 字符串]

[root@localhost ~]# echo $LANG 
zh_CN.UTF-8
[root@localhost ~]# [ $LANG !=  "en.US" ] && echo  "Not en.US"
Not en.US

7.逻辑测试

[ 表达式1 ] 操作符[ 表达式2 ]

命令1 操作符 命令2

[root@localhost ~]# echo $USER
root
[root@localhost ~]# [ $USER != "teacher" ]  &&  echo "Not teacher"
Not teacher

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值