Shell 基础语法

2018-10-04  本文已影响0人  一杉风雨

判断

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
上一篇下一篇

猜你喜欢

热点阅读