##函数形式
#!/bin/bash
set -x
echo_color(){
if [ $1 = "green" ]; then
echo "\033[32;40m$1\033[0m"
elif [ $1 = "red" ]; then
echo "\033[31;40m$1\033[0m"
else
echo "print had"
fi
}
echo_color green
echo_color red
##非函数形式 test2.sh
#!/bin/bash
set -x
if [ $1 = "green" ]; then
echo "\033[32;40m$1\033[0m"
elif [ $1 = "red" ]; then
echo "\033[31;40m$1\033[0m"
else
echo "print had"
fi
#执行
sh test2.sh green
sh test2.sh red
##case 形式
echo_color(){
case $1 in
green)
echo "\033[32;40m$1\033[0m"
;;
red)
echo "\033[31;40m$1\033[0m"
;;
*)
echo "Example: echo_color red string"
esac
}
echo_color green
echo_color red
##外部输入变量
#!/bin/bash
echo "qingshuruyanse"
read color
case $color in
green)
echo "\033[32;40m green \033[0m"
;;
red)
echo "\033[32;40m red \033[0m"
;;
*)
echo "Example: echo_color red string"
esac
##if 整数比较
#!/bin/bash
a=30
b=20
if [ $a -eq $b ]
then
echo "a=b"
elif [ $a -gt $b ]
then
echo "a>b"
else
echo "no"
fi
##附上if 基本语法
##整数比较
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
小数据比较可使用AWK #下一篇单独介绍awk数据处理
##字符比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
!= 不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]结构中">"需要被转义.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
### 文件类型比较
-f 文件存在并且是一个常规的文件
-s 文件存在且不为空
-d 文件存在并是一个目录
-b 文件存在并且是一个块设备
-L 文件存在并且是一个软连接
###执行权限比较
-r 有读的权限
-w 有写的权限
-x 有执行的权限