shell readme
This commit is contained in:
parent
b205c2c28f
commit
bd6eb65926
181
README.md
181
README.md
|
@ -0,0 +1,181 @@
|
|||
## 一、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 读取传递到函数的参数。
|
Loading…
Reference in New Issue