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

Posted 鱼夫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本:变量,文件判断,逻辑运算等纪要相关的知识,希望对你有一定的参考价值。

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

      变量

 

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

        name=yufu     直接定义赋值

        time=`date`   指令嵌套赋值

        $name   $time : 调用变量

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

        name=yufu

        expor name

        env  |  grep  name    :查看环境变量

        unset name  :取消环境变量

 

        位置变量与状态变量

	$1 $2 $3 ... $9 : 从标准输入接收参数
	${10} : 十个以上参数要用花括号把数值括起来
	$* :所有参数:   在脚本间调用时当成一个参数调用
	[email protected] :等于$*作用 :在脚本间调用时可以分开调用参数
	$# :参数个数
	$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 


                       换种方式

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

            逻辑运算的一个例子

 

 

[[email protected] ~]# id yufu &> /dev/null && echo "user exist" || useradd yufu
user exist
#在使用 与或 逻辑运算过程中,如果如果前面的指令执行正确才会执行后面的与运算指令,如果前面的指令执行失败(状态值为非0)则后面的与运算不会执行,跳过执行 或运算指令
#如果或运算在前面,规则则相反
[[email protected] ~]# [ -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:判断字符串是否为空
		[] :不用正则表达式的时候用单中括号
		使用正则表达式时用双中括号[[]]
		中括号中的变量最好加 “”

以上是关于shell脚本:变量,文件判断,逻辑运算等纪要的主要内容,如果未能解决你的问题,请参考以下文章

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Linux shell 基础

编写Shell脚本---接受、判断用户参数

20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/

Linux | shell脚本-比较判断和运算语句

Shell脚本入门 04:算术与逻辑运算