shell脚本:变量,文件判断,逻辑运算等纪要

   shell脚本中的变量定义,引用各有不同的方式,除此之外,很常用的有文件属性判断,逻辑运算,数值运算等,下面记录一下它们的属性作用

      变量

 

 shell变量的定义分为两种:一种是直接赋值定义,另一种是嵌套指令调用赋值:

        name=yufu     直接定义赋值

        time=`date`   指令嵌套赋值

        $name   $time : 调用变量

      此外变量还分局部变量和全局变量,局部变量只对当前bash环境有效,环境变量全局有效,上面的定义方式是定义局部变量,全局变量定义方式如下

        name=yufu

        expor name

        env  |  grep  name    :查看环境变量

        unset name  :取消环境变量

 

        位置变量与状态变量

	$1 $2 $3 ... $9 : 从标准输入接收参数
	${10} : 十个以上参数要用花括号把数值括起来
	$* :所有参数:   在脚本间调用时当成一个参数调用
	$@ :等于$*作用 :在脚本间调用时可以分开调用参数
	$# :参数个数
	$0:显示脚本名称
	set -- :清空位置参数
	shift :参数默认向左移动一位,可指定数字
	$? :指令执行状态值 0或者非0

 

      数值运算方式

 

	x=1
	y=2
	z=$[x+y]  let z=x+y 或者 z=$((x+y))

 

    逻辑判断

真,假
	逻辑运算:
		与运算:
			 &&  = 
			 &&  = 
			 &&  = 
			 &&  = 
		或运算:
			 ||  = 
			 ||  = 
			 ||  = 
			 ||  = 
		非运算:
			!  = 
			!  = 
  逻辑与
                          cmd1 && cmd2 
                          如果cmd1为假,cmd2不需要执行,如果cmd1为真,cmd2要执行
                逻辑或
                          cmd1 || cmd2
                          如果cmd1为假,那么要执行cmd2如果为真,那么cmd2不用执行
                布尔运算

                          数值方式

                                  true, false
                                    1      0
                         与:
                                 1  1 = 1
                                 1  0 = 0
                                 0  1 = 0
                                 0  0 = 0
                        或:
                                 1  1 = 1
                                 1  0 = 1
                                 0  1 = 1
                                 0  0 = 0 


                       换种方式

                       真,假
                       
                       与运算:
                               &&  = 
                               &&  = 
                               &&  = 
                               &&  = 
                      或运算:
                               ||  = 
                               ||  = 
                               ||  = 
                               ||  = 
                      非运算:
                              !  = 
                              !  = 

            逻辑运算的一个例子

 

 

[root@yufu ~]# id yufu &> /dev/null && echo "user exist" || useradd yufu
user exist
#在使用 与或 逻辑运算过程中,如果如果前面的指令执行正确才会执行后面的与运算指令,如果前面的指令执行失败(状态值为非0)则后面的与运算不会执行,跳过执行 或运算指令
#如果或运算在前面,规则则相反
[root@yufu ~]# [ -d /tmp/hhh ] || mkdir /tmp/hhh

               条件判断

 

条件判断
	
		test 
			状态值 0 为真  1为假
			
		test   $str1 = $str2
	 (常用)  [ $str1 = $str2 ] 中括号前后要有空格
	
	   (常用)[ -z $var ] :判断是否为空,可以判断文件属性

              文件判断

 

                -a: 文件是否存在
		-d:是否是文件夹
		-f:文件是否存在
		-l:是否是软连接
		-w:是否有写权限
		-x:是否有执行权限
		-v:变量是否被设置了
		-o:或者,多条件判断
		-n:变量是否为空
		-z:判断字符串是否为空
		[] :不用正则表达式的时候用单中括号
		使用正则表达式时用双中括号[[]]
		中括号中的变量最好加 “”

posted on 2018-04-13 21:23  孤岛鱼夫  阅读(871)  评论(0编辑  收藏  举报