目录
0.关于 $( ),` `,${ },$[ ],$(( )),[ ],(( )),[[ ]]
0.关于 $( ),` `,${ },$[ ],$(( )),[ ],(( )),[[ ]]
- $( ) 与 ` ` (反引号) 都是用做命令替换。
- ${ } 用于变量替换。一般情况下,$var 与${var} 并没有不一样。但是用 ${ } 会比较精确的界定变量名称的范围。
- $[ ] $(( )) 是一样的,都是进行数学运算。支持+ - * / %:分别为 “加、减、乘、除、取模”。但是bash只能作整数运算,浮点数当作字符串处理。
- [ ] 即为test命令的另一种形式。
- (( )) [[ ]] 分别是[ ]的针对数学比较表达式和字符串表达式的加强版。其中(( )),不需要再将表达式里面的大小于符号转义。
1.if 判断
#基本语法
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
#!/bin/bash
read -p "input two number": a b
if [ $a -lt $b ]; then
echo "$a < $b"
elif [ $a -eq $b ]; then
echo "$a = $b"
else
echo "$a > $b"
fi
2.case 语句
#基本语法
case $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意
#!/bin/bash
case $1 in
"1")
echo "aaa"
;; #相当于break
"2")
echo "bbb"
;;
*)
echo "ccc"
;;
esac
3.for 循环
#基本语法
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
for 变量 in 值 1 值 2 值 3…
do
程序
done
#!/bin/bash
sum=0
for((i=0;i<=100;i++))
do
sum=$[$sum+$i]
done
echo $sum
#!/bin/bash
for i in aaa bbb ccc
do
echo $i
done
4.while 循环
#基本语法
while [ 条件判断式 ]
do
程序
done
#!/bin/bash
sum=0
i=1
while [ $i -le 100 ]
do
sum=$[$sum+$i]
i=$[$i+1]
done
echo $sum
5.函数
#基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
#!/bin/bash
function sum()
{
s=0
s=$[$1+$2]
echo "$s"
}
read -p "Please input the number1: " n1;
read -p "Please input the number2: " n2;
sum $n1 $n2;
6.应用:监测 MySQL 数据库异常
#安装mysql:
yum install mysql-server -y #CentOS
systemctl start mysqld
sudo apt-get install mysql-server #Ubuntu
systemctl start mysql
#!/bin/bash
#or $(netstat -lntup|grep 3306|wc -l)
if [ `netstat -lntup|grep 3306|wc -l` -gt 0 ]; then
echo "MySQL is Running"
else
echo "MySQL is Stopped"
systemctl start mysqld
fi