- 单引号保持字符串的原型输出,而双引号进行了命令替换。
- 本地变量:作用域为当前代码段
- 通过set进行声明,set可以省略
- unset可以撤销本地变量和环境变量
- 环境变量:作用域为当前shell进程或子进程
- 位置变量
1 #!/bin/bash
2 while [ $# != 0 ];do
3 echo "第一个参数为:$1,参数个数为:$#"
4 shift
5 done
- 特殊变量
- $? :上一次命令执行状态(0为真 1为假)
- $$:Shell本身的PID(ProcessID)
- $!:Shell最后运行的后台Process的PID
- $-:使用Set命令设定的Flag一览
- $*:所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
- $@:所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
- $# :添加到Shell的参数个数
- $1~$n:添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
- 输出重定向
- >
- >>
- $>
- /dev/null
- /dev/zero
- bash的书写格式
- 条件表达式
- [ expre ]
- [[ expre ]]
- test expre
- 整数的比较
- -eq 相等
- -ne 不等
- -gt 大于
- -lt 小于
- -ge 大于等于
- -le 小于等于
- 字符串比较
- str1 = str2 当两个串有相同内容、长度时为真
- str1 != str2 当串str1和str2不等时为真
- -n str1 当串的长度大于0时为真(串非空)
- -z str1 当串的长度为0时为真(空串)
- str1 当串str1为非空时为真
- 文件判断
- -r file 用户可读为真
- -w file 用户可写为真
- -x file 用户可执行为真
- -f file 文件为正规文件为真
- -d file 文件为目录为真
- -c file 文件为字符特殊文件为真
- -b file 文件为块特殊文件为真
- -s file 文件大小非0时为真
- -t file 当文件描述符(默认为1)指定的设备为终端时为真
- 逻辑关系
- 条件判断
if condition
then
...
fi
#############################
if condition;then
...
fi
#############################
if condition
then
...
else
...
fi
#############################
if condition1
then
...
elif condition2
then
...
else
...
fi
for var in item1 item2 ... itemN
do
...
done
#############################
while condition
do
...
done
#############################
#!/bin/sh
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
#############################
while :
do
...
done
#############################
until condition
do
...
done
case 值 in
模式1)
...
;;
模式2)
...
;;
esac
- 算数运算表达式
- let c=$a+$b
- c=$[$a+$b]
- c=$(($a+$b))
- c=`expr $a + $b` 两数相加
- c=`expr $a - $b` 两数相减
- c=`expr $a \* $b` 两数相乘
- c=`expr $a / $b` 两数相除
- bash常用命令