Hero Image
Shell脚本学习笔记

Shell 脚本学习笔记 执行算术运算 val=`expr $a + $b` 运算符 符号 说明 示例 ! 非运算 [ ! false ] -o 或运算 [ $a -lt 20 -o $b -gt 20 ] -a 与运算 [ $a -lt 20 -a $b -gt 20 ] = 相等检测 [ $a = $b ] != 不相等检测 [ $a != $b ] -z 字符串长度是否为 0,为 0 则返回 true [ -z $a ] -n 字符串长度不为 0, 不为 0 返回 true [ -n $a ] str 检测字符串是否为空,不为空返回 true [ $a ] -b 检测文件是否是块设备文件 [ -b $file ] -c 检测文件是否是字符设备 .. -d 检测文件是否为目录 [ -d $file ] -f 检测文件是否为普通文件 [ -f $file ] -r 检测文件是否可读 .. -w 检测文件是否可写 .. -x 检测文件是否可执行 .. -s 检测文件是否为空 .. -e 检测文件是否存在 .. 特殊变量 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数,所有参数被当做一个词,例如 “1 2 3” $@ 传递给脚本或函数的所有参数,每个参数当做一个词,用双引号包含,例如"1" “2” “3” $? 上个命令的退出状态,或函数的返回值 $$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID POSIX 程序退出状态 状态码 含义 0 命令成功退出 > 0 在重定向或者单词展开期间(~、变量、命令、算术展开以及单词切割)失败 1 - 125 命令不成功退出。特定的退出值的含义,有各个命令自行定义 126 命令找到了,但是文件无法执行 127 命令没有找到 > 128 命令因收到信号而死亡 输入输出重定向 命令 说明 command > file 将输出重定向到 file。 command > file 将输出以追加的方式重定向到 file。 n > file 将文件描述符为 n 的文件重定向到 file。 n » file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n >& m 将输出文件 m 和 n 合并。 n <& m 将输入文件 m 和 n 合并。 « tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。 文件包含 使用.或者source包含文件