Shell基础语法

判断

if [ expression ]; then
    # do something
else
    # do something
fi

分支

case ${var} in
    condition1)
    # do something
    ;;
    condition2)
    # do something
    ;;
    *)
    # default do something
    ;;
esac

循环

循环列表1

for var in [list]
do
    # use ${var} do something
done

循环列表2

for var in {1..100}
do
    # use ${var} do something
done

循环读文件

cat $file |while read line
do
    # do something
done

while [ condition ]
do
    # do something
done

循环控制

break;         # 跳出
continue;      # 继续

判断标识

-a         # 逻辑与
-o         # 逻辑或Or

-eq        # 等于
-ne        # 不等于
-lt        # 小于
-gt        # 大于
-le        # 小于等于
-ge        # 大于等于

if [ x"${value}" == x ];then ...   # 字符串判空   

-e         # 文件是否存在
-d         # 文件是否为目录
-s         # 文件大小是否为零
-f         # 文件是否为普通文件
-r         # 文件是否对当前用户可读
-w         # 文件是否对当前用户可写
-x         # 文件是否对当前用户可执行
!-x        # 文件是否对当前用户不可执行
file1 nt file2    # 文件1比文件2新
file1 ot file2    # 文件1比文件2旧

函数传参

$0        # 函数或命令的名字
$n        # 命令的第n个参数
$*        # 所有参数,代表["$1$2$3$4……"]
$@        # 所有参数,代表["$1" "$2" "$3" ……]
$#        # 参数个数
$$        # 命令的PID
$!        # 上一个指令的PID(后台运行的最后一个进程的进程ID号)
$?       # 上一个指令的返回值 (0表示没有错误)
$- 显示shell使用的当前选项,与set命令功能相同
引用其他脚本
source filename.sh
. filename.sh
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容