变量

变量数组

var_name=(varlue0 value1 varlue2 varlue3)
name[n]=varlue

只读变量

readonly=varlue

删除变量

unset var_nam

特殊变量

变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$@ 传递给脚本或函数的所有参数。
$* 传递给脚本或函数的所有参数。被双引号("")包含时,与$@稍有不同。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

运算符

算数运算符

运算符 说明 举例
+ 加法 expr $a + $b 结果为 30。
- 减法 expr $a - $b 结果为 -10。
* 乘法 expr $a \* $b 结果为 200。
/ 除法 expr $b / $a 结果为 2。
% 取余 expr $b % $a 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等 用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等 用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。

关系运算符

运算符 说明 举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

逻辑运算符

运算符 说明 举例
&& 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
ll 逻辑的 OR [[ $a -lt 100 ll $b -gt 100 ]] 返回 true

环境配置


流程控制

if分支

if [条件判断] ;then
	条件执行
if

case分支

case $变量 in
"变量1")
	command1
	;;
"变量2")
	command2
	;;
*)
	exit 1
	;;
esac

for循环

常用语法

for $变量 in var
do
  command
done

c语言语法

num=n
for ((a=1;a <= num; a+1 ))
do
  comand
done

while循环

while [条件判断]
do
	command
done

c语言语法

((a=1))
num=n
while ((a <= num))
do
	command
done

until循环

until [条件判断]
do
	command
done

select结构

PS3=' 设置提示符字串 '
select $变量 in var
do
	command 
break
 done

函数

function funname ()
{
	command
}