Shell_04_Shell脚本

Shell_04_Shell脚本

  • Shell脚本
    • 编写Shell脚本
    • 调用Shell脚本

Shell脚本

脚本:由多条命令构成的文件(可通过文本编辑器查看)

1)Shell属于Linux内置脚本(常见脚本:JS、JSP、PHP、SQL、Python等)

2)脚本周期:一个Shell文件运行完成的过程

3)Shell脚本分为:简单写法(简单命令的堆积)、复杂写法(程序设计)

编写Shell脚本

编写Shell脚本需遵守以下规定:

(1)文件名规范

1)文件名命名格式:文件名.sh

//.sh后缀是为了区分普通文件,且.sh是Bash默认后缀


(2)代码规范

1)Shell脚本文件中第一行必须为:#!/bin/bash

//表示当前脚本文件所使用的Shell解释器

2)脚本以“exit N”形式结束(N是返回的数值),且N范围为0~255

//可通过${?}获得N的值,便于调式

//若N的值超过255,则该值除以256的余数作为返回状态码


常用的退出状态码

状态码 说明
0 命令成功结束
1 无效参数
2 不适合的Shell命令
126 命令执行失败(无权限)
127 无指定命令
128 无效的退出参数
128+x x信号相关的错误
130 被Ctrl+C终止
255 正常范围之外的退出状态码

(3)注释规范

1)注释应包含:脚本功能、版本信息和运行所需的环境

//最好还包含:作者、联系方式、脚本的历史记录和脚本的特殊命令


(4)调用规范

1)脚本的调用需用户拥有该文件的执行权限(x);

2)脚本文件可通过以下方式调用:


脚本路径、sh 脚本文件名、source 脚本文件名

//前两种方式均是子Shell中执行脚本,而source则在父Shell中执行脚本


(5)特殊符号

特殊符号 含义
# 注释符号
; 命令分隔符
& 命令变成后台任务

如:使用Shell脚本程序,输出“Hello world!”

1)a.创建带有.sh后缀的脚本文件
在这里插入图片描述

1)b.编写相关程序(第一行指定解释器),并保存
在这里插入图片描述

1)c.给与脚本执行权限,调用脚本
Shell_04_Shell脚本_第1张图片

2)a.创建并编写hello.sh脚本文件
在这里插入图片描述

2)b.脚本文件内容如下:
Shell_04_Shell脚本_第2张图片
//强烈建议使用第二种写法,能够保证后续脚本的维护与更新

//编写脚本工具最好使用Vim而不是Vi(Vim有额外的语法检测功能)


trap命令:设置当Shell脚本接受到信号后的反应

指令格式1:trap 命令 信号

1)接受到指定信号后,运行指定命令;

2)多个trap命令时,则仅在运行该trap命令相关的部分时,才执行指定命令;


如:使用Ctrl+C终止带有trap命令捕获信号的脚本

1)编写test23.sh脚本文件
Shell_04_Shell脚本_第3张图片
2)调用test23.sh脚本文件
Shell_04_Shell脚本_第4张图片


指令格式2:trap 单破折号或双破折号 信号 //恢复信号原作用

1)若信号在恢复前被捕获,则按照trap命令指定的命令执行


如:通过trap命令捕获信号后,恢复信号原作用

1)编写test24.sh脚本文件
Shell_04_Shell脚本_第5张图片

2)调用test24.sh脚本文件
Shell_04_Shell脚本_第6张图片

调用Shell脚本

sh命令:shell命令解释器

指令格式:sh 选项 文件路径

1)最常用的是不加选项让系统以Bash的功能执行文件

2)sh是在子进程中执行脚本文件

选项 含义
-v 执行shell脚本前,先将内容输出到屏幕
-n 只对shell脚本进行语法检查,并不执行
-x 对shell脚本进行逐条语句的跟踪

//最常用-x选项对脚本文件进行debug


如:对hello.sh文件进行shell脚本的跟踪和调试
Shell_04_Shell脚本_第7张图片


source命令:在当前Bash环境下执行文件并立刻生效

指令格式:source 文件路径

1)source命令也为“.”点命令(两者完全相同)

2)source命令常用于执行刚修改的初始化文件,使该文件立即生效

3)source是在父进程中执行脚本文件


其他方式调用Shell脚本:

1)以绝对路径或相对路径调用;

2)通过Shell解释器的绝对路径和脚本文件路径调用;

//如:/bin/bash 文件路径

你可能感兴趣的:(互联网精神,Shell,bash,linux,开发语言)