shell 常用命令总结
#!/bin/bash
if[$1-gt90]
then
echo"Good,$1"
elif[$1-gt70]
then
echo"OK,$1"
else
echo"Bad,$1"
fi
exit 0for day in Sun Mon Tue Wed Thu Fri Sat
do
echo$day
done
# 如果列表被包含在一对双引号中,则被认为是一个元素case "$var" in
condition1)
statments1;;
condition2)
statments2;;
...
*)
defaultstatments;;
esac
数字比较
-lt,小于
-le,小于等于
-eq,等于
-ge,大于等于
-gt,大于
-ne,不等于
整数运算一般通过 let 和 expr 这两个指令来实现
如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`
字符串比较
=
!=>
<
if[$a="111"]中间必须加空格
-dfile: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
echoPleaseenteryourname
readNAME
echo"Hi!$NAME!"
exit 0运算符 含义( 满足下面要求时返回 TRUE )
-efile文件file已经存在
-ffile文件file是普通文件
-sfile文件file大小不为零
-dfile文件file是一个目录
-rfile文件file对当前用户可以读取
-wfile文件file对当前用户可以写入
-xfile文件file对当前用户可以执行
-gfile文件file的GID标志被设置
-ufile文件file的UID标志被设置
-Ofile文件file是属于当前用户的
-Gfile文件file的组ID和当前用户相同
file1-ntfile2文件file1比file2更新
file1 -ot file2 文件 file1 比 file2 更老getopts的用法:
可以-d -e参数
:de: 第一个冒号忽略错误,第二个冒号表示参数接受值
#!/bin/sh
whilegetopts:de:opt;
do
case$optin
d)
echo"hello,world";;
e)
echo$opt;;
esac
done