Shell脚本类似于Windows/Dos下的批处理,也就是预加载各种命令文件的程序文件,方便一次性执行,主要是为了方便管理员设置或管理。
但它比Windows下的批处理更强大,也比用其他编程程序编辑的程序更高效,毕竟它使用Linux/Unix下的命令。
换句话说,shell 脚本是使用 shell 的功能编写的程序。该程序使用纯文本文件,在其中写入一些 shell 语法和指令,然后使用常规符号、管道命令和数据流。
重定向等功能,达到我们想要的处理目的。
说得更清楚一点,shell脚本就像dos时代早期的.bat。最简单的功能是将多条命令组装在一起,让用户可以在一次操作中轻松执行多条命令,而shell脚本更提供了数组、循环、条件、逻辑判断等重要功能,让用户可以直接在shell 没有使用 C 编程语言等传统编程语言的语法。
shell和shell脚本有什么区别?准确地说,Shell 是一个命令行解释器,它的作用是按照一定的语法来解释输入的命令,并将其传递给系统。
它为用户提供了一个接口系统级程序,向Linux发送请求以运行程序。用户可以使用 Shell 来启动、暂停、停止,甚至编写一些程序。
Shell本身是一个用C语言编写的程序,是用户使用Linux的桥梁。 Shell 既是一种命令语言,又是一种编程语言(你称之为 shell 脚本)。
作为一种命令语言,它交互式地解释和执行用户输入的命令;作为一种编程语言,它定义了各种变量和参数,并提供了许多只有高级语言才有的控制结构,包括循环和分支。
虽然它不是Linux系统内核的一部分,但它调用了系统内核的大部分功能,以并行的方式执行程序、创建文档和协调各种程序的执行。
打开文本编辑器(可以使用vi/vim命令创建文件),新建文件test.sh,扩展名为sh(sh代表shell),扩展名不影响脚本的执行,它是很高兴知道名称,如果您使用 php 编写 shell 脚本,并使用 php 作为扩展名。
脚本的执行方式: 1、需要执行权限 使用路径(绝对/相对) + 文件名 2、直接使用shell程序 shell + 文件名 bash + 文件名 sh + 文件名 3、第三种(不要权限) 会影响当前环境,会有未知问题 source(不建议使用) 脚本名 . 等于source
脚本的执行逻辑
1、顺序执行:程序按从上到下顺序执行
2、选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
3、循环执行:程序执行过程中需要重复执行多次某段语句
脚本错误调试:
1、命令错误
命令出错,不会影响后续的执行
2、语法错误
会影响接下来的命令执行
3、逻辑错误
只能自己去筛查
查代码的正确
bash -n 脚本名称 (不在当前目录下加绝对路径) 检查语法错误
bash -x 脚本名称 (不在当前目录下加绝对路径) 逻辑错误