#!/bin/bash
if [ $1 -gt 90 ]
then
echo "Good, $1"
elif [ $1 -gt 70 ]
then
echo "OK, $1"
else
echo "Bad, $1"
fi
exit 0
for day in Sun Mon Tue Wed Thu Fri Sat
do
echo $day
done
# 如果列表被包含在一对双引号中,则被认为是一个元素
case "$var" in
condition1 )
statments1;;
condition2 )
statments2;;
...
* )
default statments;;
esac
数字比较
-lt,小于
-le,小于等于
-eq,等于
-ge,大于等于
-gt,大于
-ne,不等于
整数运算一般通过 let 和 expr 这两个指令来实现
如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`
字符串比较
=
!=
>
<
if [ $a = "111" ] 中间必须加空格
-d file :file存在并是一个目录
-z str str为空,长度为0
-n str str非空
更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。
awk -F"," '{print $1}'
v_record=`echo $line|awk -F"," '{print $1}'`
v_time=`echo $line|awk -F"," '{print $2}'`
v_status=`echo $line|awk -F"," '{print $3}'`
无论是在 Shell 中对 BASH 脚本返回值的处理,还是在脚本中对函数返回值的处理,都是通过 "$?" 系统变量来获得。BASH 要求返回值必须为一个整数,不能用 return 语句返回字符串变量。
BASH 中通过 read 函数来实现读取用户输入的功能,如下面这段程序:
#!/bin/bash
echo Please enter your name
read NAME
echo "Hi! $NAME !"
exit 0
运算符 含义( 满足下面要求时返回 TRUE )
-e file 文件 file 已经存在
-f file 文件 file 是普通文件
-s file 文件 file 大小不为零
-d file 文件 file 是一个目录
-r file 文件 file 对当前用户可以读取
-w file 文件 file 对当前用户可以写入
-x file 文件 file 对当前用户可以执行
-g file 文件 file 的 GID 标志被设置
-u file 文件 file 的 UID 标志被设置
-O file 文件 file 是属于当前用户的
-G file 文件 file 的组 ID 和当前用户相同
file1 -nt file2 文件 file1 比 file2 更新
file1 -ot file2 文件 file1 比 file2 更老
getopts的用法:
可以-d -e参数
:de: 第一个冒号忽略错误,第二个冒号表示参数接受值
#!/bin/sh
while getopts :de: opt;
do
case $opt in
d)
echo "hello,world";;
e)
echo $opt;;
esac
done