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