shell脚本知识之一

shell脚本知识之一

定义变量

  • 在Bash中,每一个变量的值都是字符串。无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统保留,用来存储一些特别的值,这类变量就称为环境变量,相信大家对环境变量也并不陌生,因为即使在windows操作系统上,也存在环境变量。

普通变量

  • 普通变量可以通过下列的方式进行赋值,并打印输出:
    #var=value          #等式左边是变量,右边是将要赋给变量的值
    var="value"         #声明一个变量var,并将其赋值为“value”
    echo $var           #使用echo输出变量的值
    echo ${var}         #作用同上一行
    
  • 注意事项: var=value 不同于 var = value,前者是一个赋值表达式,而后者则是一个逻辑表达式,用来判断等式两端值是否相同。在赋值表达式中,如果使用的是双引号,赋给变量的值是字符串的值。而如果是单引号,就会赋给变量执行结果后的值。
    var1="whoami"            #使用双引号
    echo $var1              #输出“whoami”
    var2='whoami'          #使用单引号
    echo $var2              #输出“root”
    var3=value 2            #含空白符,不使用引号
    echo $var3               #在centos7.6中,返回行6: 2: 未找到命令
    

shell环境变量

  • shell自带的环境变量如下图所示:
    echo $$ #Shell本身的PID
    echo $SHELL	#输出shell的版本
    echo $0	#shell本身文件名
    echo $* #所有参数列表,以"$1 $2 … $n"的形式输出所有参数。
    echo $@ #所有参数列表,以"$1" "$2" … "$n" 的形式输出所有参数
    echo $# #添加到Shell的参数个数
    echo $1$n #添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
    
  • 实例
     1 #!/bin/bash
     2 #
     3 printf "The result is %s\n" "$$"
     4 printf "The result is %s\n" "$SHELL"
     5 printf "The result is %s\n" "$*"
     6 printf "The result is %s\n" "$@"
     7 printf "The result is %s\n" "$#"
     8 printf "The result is %s\n" "$0"
     9 printf "The result is %s\n" "$1"
    10 printf "The result is %s\n" "$2"
    
  • 结果
    [root@host-6 test]# sh test.sh abc 123
    The result is 13117
    The result is /bin/bash
    The result is abc 123
    The result is abc
    The result is 123
    The result is 2
    The result is test.sh
    The result is abc
    The result is 123
    

表达式的使用

变量判空

  • shell编程中,对参数的错误检查项中,包含了变量是否赋值(即一个变量是否为空),判断变量为空主要有以下四种
  1. 变量通过" "引号引起来
    #!/bin/sh
    para1=
    if [ ! -n "$para1" ]; then
      echo "IS NULL"
    else
      echo "NOT NULL"
    fi
    
  2. 直接通过变量判断
    #!/bin/sh
    para1=
    if [ ! $para1 ]; then
      echo "IS NULL"
    else
      echo "NOT NULL"
    fi
    
  3. 使用test判断
    #!/bin/sh
    dmin=
    if test -z "$dmin"
    then
      echo "dmin is not set!"
    else  
      echo "dmin is set !"
    fi
    
  4. 使用""判断
    #!/bin/sh 
    dmin=
    if [ "$dmin" = "" ]
    then
      echo "dmin is not set!"
    else  
      echo "dmin is set !"
    fi
    

获取字符串长度

  • 字符串的长度是字符串极为重要的一个特征,在shell中可以使用如下方法获取字符串的长度:
    var="value"
    length=${#var}
    echo $length            #此处将输出5
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值