快速教程:Shell 脚本
目录
分类
- Bourne Shell: sh, ksh, Bash, psh, zsh
- C shell: csh,tcsh
脚本执行
-
echo [选项] [输出内容]
-e:支持反斜线控制的字符转换 \\: 输出\本身 \a:输出警告音 \b:退格键 \c:同 -n,取消行末换行符 \f:换页符 \n:换行符 \r:回车 \t:制表符,Tab -n:取消输出后行末的换行符号 -
赋予执行权限,直接运行:
如: chmod 755 hello.sh -
通过bash调用执行:
如: bash hello.sh
Bash基本功能
- history:历史命令查看 history [选项] [文件]
-c:清空历史-w:将缓存命令保存到文件
- 历史调用:
!n重复执行第n条;!!重复执行上一条;
- 命令优先级:
相对或绝对路命令>别名>内部命令>$PATH
输入输出重定向
- 命令 > 文件: 覆盖输出
- 命令 » 文件: 追加输出
- 正确和错误输出同时保存: 命令>/»文件 2>&1
输入重定向
wc [选项] [文件名]
- -c: 统计字节数
- -w: 统计单词数
- -l: 统计行数
多命令顺序执行
- 命令1;命令2:都执行
- 命令1&&命令2:1正确执行,2才会执行
- 命令1||命令2:1执行不正确,2才会执行
管道 grep
- -A n: 列出符合条件的行,并列出后续的n行:
- -B n: ——————–前面的n行;
单引号,双引号
- 单引号直接输出;
- 双引号输出变量值;
- 反引号也输出值或命令;
环境变量
- 设置: export age=“18”
- 查看: set(查看全部);
- env(只查看环境变量)
- 删除: unset age
- PATH变量:系统查找命令 /bin/(可直接调用执行) 添加:PATH="$PATH":命令或目录
参数变量
$n: 0代表命令本身,1-9代表第n个参数,10以上的参数需加大括号,如${10}$*: 命令行中所有的参数,看成一个整体$@: 命令行中所有的参数,但区分对待$#: 参数个数
预定义变量:
$?: 最后一次执行状态;0正确,非0不正确$$: 当前进程的进程号$!: 后台运行的最后一个进程的进程号
环境变量配置文件
从上到下逐渐调用
- /etc/profile
- /etc/profile.d/*.sh
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc