''单引号里面不能应用常量
""双引号里面能直接使用常量
``反应号里调用的linux指令不会在指令台输出
[]和test两者是一样的,在命令行里test expr和[ expr ]的效果相同
[[ ]] 是内置在shell中的一个命令,它test强大的多。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达 式)。逻辑组合可以不使用test的-a,-o而使用&& || 例如:if [[ $a > $b ]] || [[ $a < $c ]]
指令 | 描述 | 案例 | 备注 |
---|---|---|---|
$val | 使用常量 | type=$1 | 在""里面也能使用,等号右边要紧跟参数 |
if elif else | 逻辑运算符 | 使用[]时 必须有空格 [ test ] | |
for while | 循环 | for i in item1 item2 … itemN | |
let | 计算工具 | 自加操作:let no++ 自减操作:let no– 简写形式 let no+=10,let no-=20,分别等同于 let no=no+10,let no=no-20。 | let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量 |
#if 案例
if
elif
else
fi
#案例1
type="f"
if test $type = "p" -o $type = "f";then
echo "aadd"
fi
#案例2
type="f"
if [ $type = "p" -o "$type" = "f" ];then
echo "aadd"
fi
#输出 aadd
#案例3 启动kafka
#!/bin/bash
type=$1
if test $type = "start" -o $type = "st";then
zk=`jps |grep QuorumPeerMain |wc -l`
if test $zk = "0";then
echo "***********************startZookeeper************************"
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
sleep 3
echo "***********************startKafka****************************"
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
else
echo "***********************startKafka****************************"
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
fi
fi
#案例1
for str in This is a string
do
echo $str
done
#输出结果
#This
#is
#a
#string
#案例2
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
#输出
#1
#2
#3
#4
#5