一,case 语法
case $cmd in
cpu) echo "cpu"
;;
mem) echo "mem"
;;
device) echo "devices"
;;
CD-ROM) echo "CD-ROM"
;;
*) echo "Your input command is invalid"
esac
二,while语法
例子一:
#!/bin/bash
i=1
sum=0
while ((i <= 100))
do
((sum += i))
((i++))
done
echo "The sum is: $sum"
例子二,如下,是tomcat启动脚本节选的shell脚本,其中$[]和$(())是一样的,都是进行数学运算的。支持+ - * / %(“加、减、乘、除、取模”)。但是注意,bash只能作整数运算,对于浮点数是当作字符串处理的。但必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错。-h 用来判断$PRG文件是否存在并且是一个软链接
while [ -h "$PRG" ] ; do
# 查看脚本信息
ls=`ls -ld "$PRG"`
# 获取真实脚本路径
link=`expr "$ls" : '.*-> \(.*\)$'`
# 是否是绝对路径
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
三,if语法
if [ $grades -gt 100 ] || [ $grades -lt 0 ];then
echo "Please input the number range in 0 - 100"
fi
判断字符串
if [ str1=str2 ];then fi ----当两个字符串相同时返回真
if [ str1!=str2 ];then fi ----当两个字符串不相等时返回真
if [ -n str1 ];then fi ----当字符串的长度大于0时返回真 (判断变量是否有值)
if [ -z str1 ];then fi ----当字符串的长度为0时返回真
判断数字
int1 -eq int2 --相等
int1 -ne int2 --不相等
int1 -gt int2 --大于
int1 -ge int2 --大于等于
int1 -lt int2 --小于
int1 -le int2 --小于等于
判断文件
-r file --用户可读为真
-w file --用户可写为真
-x file --用户可执行为真
-f file --文件存在且为正规文件为真
-d file --如果是存在目录为真
-c file --文件存在且为字符设备文件
-b file --文件存在且为块设备文件
-s file --文件大小为非0为真,可以判断文件是否为空
-e file --如果文件存在为真
判断逻辑
-a --与
-o --或
! --非