基础
#!/bin/sh # 指解释此脚本的shell路径为/bin/sh,如果没有声明,则脚本将在默认的shell中执行
set -e # 返回值非0脚本退出,如:当访问一个不存在的文件时,脚本将会退出,而不是继续执行,从而出现一些意外的情况
sh test.sh p1 p2
$1 # shell的第一个参数,此处为p1
$2 # shell的第二个参数,此处为p2
$# # shell参数个数,此处为2
mkdir -p dir1/dir2 # 递归创建文件夹
tar -zxvf package -C target # 将package解析到target文件夹下
# -z 通过gzip指令处理备份文件
# -x 从备份文件中还原文件(解压)
# -v 显示所有过程
# -f 指定备份文件(该参数是最后一个参数)
空判断
a=''
if [ ! -n "$a" ]; then # 非空判断
a=10
fi
echo $a # 10
a=''
if [ $a ]; then # 为空字符串
a=10
fi
echo $a # ''
# -z string
# True if the length of string is zero.
a=''
if [ -z $a ]; then # 为空字符串
a=10
fi
echo $a # 10
a=''
if [ "$a" = '' ]; then # 为空字符串
a=10
fi
echo $a # 10
a=''
if [ X"$a" = X ]; then # 为空字符串
a=10
fi
echo $a # 10