2.8 KiB
2.8 KiB
一、shell
1.1 shell 解释器
/bin/bash [默认]
/bin/sh
1.2 shell 脚本调用
系统自动调用:
/etc/profile 系统环境变量, 每次系统启动时调用
~/.bashrc 用户环境变量, 用户登录时调用
用户调用:
1) chmod +x xxx.sh
./xxx.sh
2) bash xxx.sh
3) . xxx.sh 相当于 source xxx.sh
1.3 shell 脚本的定义
第一行:
#!/bin/bash
1.4 shell 变量
定义: 变量名=值
引用: $变量名, "$变量名 xxx"
重新赋值: 变量名=新值
算术计算: 变量名=$(( 变量名 算术运算符 值 ))
预定变量: $#, $*, $?, $1~9, $0 进程名, $$ 进程ID
环境变量: $环境变量名
export 变量名=值 设置环境变量
特殊的变量写法: (变量名=值; 其它语句) 不影响外部的同名变量
{变量名=值; 其它语句;} 影响外部的同名变量
1.5 条件测试语句
语法:
test 操作符 变量
test 变量1 操作符 变量2
[ 操作符 变量 ]
[ 变量1 操作符 变量2 ]
文件相关:
-e 是否存在 -d 是目录 -f 是文件
-r 可读 -w 可写 -x 可执行
-L 符号连接 -c 是否字符设备 -b 是否块设备
-s 文件非空
字符串相关:
= 两个字符串相等 != 两个字符串不相等
-z 空串 -n 非空串
数字相关:
-eq 数值相等 -ne 数值不相等
-gt 数 1 大于数 2 -ge 数 1 大于等于数 2
-lt 数 1 小于数 2 -le 数 1 小于等于数 2
复合测试相关:
command1 && command2 左边命令执行成功(即返回 0)shell 才执行右边的命令
command1 || command2 左边的命令未执行成功(即返回非 0)shell 才执行右边的命令
多重条件判定:
-a 多个条件必须都为真(true) 结果才为true
-o 多个条件中只需要一个为真,结果为true
! 条件取反
1.6 分支语句
if 分支:
if [ 条件1 ]; then
执行第一段程序
elif [条件2 ]; then
执行第二段程序
else
执行第三段程序
fi
case 分支:
case $变量名称 in
“第一个变量内容”)
程序段一
;;
“第二个变量内容”)
程序段二
;;
*)
其它程序段
exit 1
esac
for 语句:
for (( 初始值; 限制值; 执行步阶 ))
do
程序段
done
while 语句:
while [ condition ]
do
程序段
done
until 语句:
until [ condition ]
do
程序段
done
循环语句中可以使用 break 和 continue。
1.7 函数
定义函数:
函数名(){
命令 ...
}
function 函数名(){
命令 ...
}
调用函数:
函数名 param1 param2……
函数体内,可以使用$1,$2 ...$9 读取传递到函数的参数。