Shell变量的定义与赋值操作注意事项

时间:2021-05-07 16:15:03

1 shell变量是弱类型

* 声明变量不用声明类型
 * 可以存储不同类型的内容
 * 使用时要明确变量的类型
 * 区分大小写

2 变量声明及赋值格式
 2.1 格式
  变量名=变量值

# 注意等号两侧不可有空格,否则会当做命令来对待,而[、]等命令必须要在前后都加上空格

  据此你可以明白为什么有这些限制
 2.2 举例
   var="do you?"

3 变量的使用
 3.1 格式
  $变量名 或 ${变量名}

 注意与$(xxx)的区别,$(xxx)是执行命令xxx时输出的结果

 如now=$(date)同now=`date`  #反斜杠执行命令

 3.2 举例
  var="a string"
  echo $var  #或者是echo ${var}

4 shell 变量的条件赋值

var3=${var1:var2}  #冒号后面是“-”的话,或者没有(默认是“-”) 表示, 如果变量1的值为空, 就将变量2赋给变量3.if var1 is null var3=var2 else var3=var1

var3=${var1:+var2} 冒号后面是“+”的话, 表示变量1不为空时, 使用变量2的值赋给变量3

这和其他语言中的三目运算符:?类似。

5.下面是一个例子:

#!/bin/bash
expectStr="start/running,"
str=$(sudo service mysql status | awk '{print $2}')  #显示mysql服务状态
echo $str

#比较字符串变量是否相等=、==、!=
if [ "$str"x != "expectStr"x ] #x used if case $str is null
then
  echo 'not running'

else echo running

fi