1. 变量
VARNAME=value
export VARNAME=value:导出环境变量
输出变量:
echo $VARNAME
echo ${VARNAME}
2. 命令代换:'或$()
DATE=`date`
DATE=$(date)
3. 算术代换:$(())
VAR=300
VAR2=$(($VAR+3))
4. 单引号
保留字符串的字面值
VAR=aaa
echo '$VAR' --> 输出 $VAR
5. 双引号
会把变量转换成实际值
echo "$VAR" --> 输出aaa
6. 位置参数
$0:shell程序名
$1,$2,...:程序参数
$#:参数个数(不包括程序名)
$@:参数列表,可以用于for in中
$$:当前shell的进程号
7. 条件语句
if [ -f "filename" ]; then
...
elif [ -z "$xx" ]; then
...
fi
8. for循环
for VAR in list; do
...
done
e.g.,
hrs="00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23"
for hr in $hrs; do
echo $hr
done
for((i=0;i<10;i++)); do
...
done
9. while循环
while [ expr ]; do
...
done
i=1
while [ $i -lt 10 ]
do
sed -n "${i}p" 111.txt
i=$(($i+1)) 必须双层括号
done
跳出循环:continue; 和break;
10. 字符串相关
替换:
${VAR/str1/replacement}
e.g.
a=aabbcc
echo ${a/aa/bb} -->输出bbbbcc
比较:
if [[ "$a" < "$b" ]; then
...
fi
截取:
${str:position:length}