码迷,mamicode.com
首页 > 系统相关 > 详细

Shell编程之---变量、比较、测试的使用总结

时间:2015-06-18 09:46:45      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:变量   环境变量   位置变量   预定义变量   条件测试   

一、变量

环境变量、位置变量、预定义变量


1、环境变量
env   #查看环境变量

2、位置变量
vi location.sh
#!/bin/bash
 SUM=`expr $1 + $2`
 echo "$1 + $2 = $SUM"
./location 12 34   #则12为第一个位置变了$1,32为第二个位置变了$2。location为预定义变量

3、预定义变量
$#   #表示命令行中位置参数的个数
$*   #表示所有位置参数的内容
$?   #表示执行后的返回状态,0为正常
$0   #表示当前执行的脚本或程序名称

vi yu.sh
#!/bin/bash
name=bak-`date +%y%m%d`.tar.gz
tar zcf $name $* & >/dev/null
echo "execute $0 script"  
echo "complete $#  object"
echo "content is $*"

=========================================================================================


二、条件测试操作[]
1、文件测试
-d   #判断是否为directory         [ -d /etc ] && echo "This is a directory"
-e #判断是否exist           [ -e /var/log/messages ] && echo "exist"
-f   #判断是否为file          [ -f /etc/passwd ] && echo "This is a file"
-r   #判断是否有read               [ -r read ] && echo "premission is a read " 
-w   #判断是否有write        [ -w write ] && echo "premission is a write"
-x   #判断是否有execute       [ -x execute ] && echp "premission is a execute"
-l   #判断是否为link
-b   #判断是否为black       [ -b /dev/sr0 ] && echo "This is a block"
-c   #判断是否为chatset       [ -c /dev/vcsa ] && echo "This is a charset"

2、整数值比较
-eq   #1等于2
-ne   #1不等于2
-gt   #1大于2
-lt     #1小于2
-ge   #1大于或等于2
-le   #1小于或等于2
user=`who | wc -l`   #$user为3
[ $user -lt 4 ] && echo yes

3、字符串比较
=   #第一个字符串等于第二个字符串
!=   #第一个字符串不等于第二个字符串
-z    #检查字符串是否为空,对于未定义或赋予空值的变量视为空串
[ $LANG = en_US.UTF-8 ] && echo yes

4、逻辑测试
&&   #"而且",当前面和后面两个条件都成立时,整个测试命令的返回值才为0
||        #"逻辑或",只要前面和后面两个条件中有一个成立时,整个测试命令的返回值即为0
!   #"逻辑否",只有当指定的条件不成立时,整个测试命令的返回值才为0

[ $LANG != zh_CN.UTF-8 ] && [ $user != 100 ] && echo yes    ##$user=3
[ $LANG != zh_CN.UTF-8 ] || [ $user != 3 ] && echo yes

Shell编程之---变量、比较、测试的使用总结

标签:变量   环境变量   位置变量   预定义变量   条件测试   

原文地址:http://blog.csdn.net/wanglei_storage/article/details/46539317

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!