当前位置:首页 » 编程软件 » bash脚本格式

bash脚本格式

发布时间: 2025-09-16 01:42:02

‘壹’ 不过时的技术——Bash脚本

Bash是一种不需要编译,直接运行在Unix/Linux系统之上的脚本程序。它可以只包含一些简单的命令,顺序执行;也可以包含变量、控制语句等复杂的语法结构。Unix/Linux系统一直就是计算机世界的基石,Bash也是系统管理员、程序员必须掌握的技术之一,很多工作都可以借助Bash自动执行。甚至Unix/Linux系统本身的很多功能,也是由Bash实现的。随意打开 /etc/init.d/ 目录下的某个文件,会发现就是一个Bash脚本,在Linux中,存在这大量这样的脚本。

上面的脚本看似复杂,但从结构上可以简单划分为四部分:

1. 第一行 #! /bin/sh 叫 shebang ,标明这是一个Shell脚本。
2. 后面以 # 打头的是注释,说明该脚本的作用及用法。
3. 中间一大段是命令及控制语句,这里是真正做事的地方。
4. 最后 exit 0 ,退出脚本。
一个Linux命令执行后,都会有一个返回值, 0 表示命令执行成功, 1 表示命令执行过程中出错,根据错误的不同,还可能返回 2 、 3 、 4 等值。在Linux中,变量 $? 记录了上次命令的返回值。使用 echo $? 可以查看上次命令执行成功与否。Bash脚本的返回值默认为最后一条命令的返回值,很多时候这并不是我们想要的结果,因此常常在脚本最后使用 exit 0 显式声明返回值。

遵循上面的规则,我们可以编写出自己的第一个Bash脚本: hello_world ,它的作用是在命令行打印一条消息。

切换到该脚本所在目录, bash hello_world 运行该脚本,不出意外的话,恭喜你写出了第一个Bash脚本。

通常人们不采用 bash hello_world 这种方式运行Bash脚本,而是赋给脚本可执行权限,直接运行脚本:

有些同学会在运行脚本时碰到一个问题:既然已经在当前目录下,为什么直接运行 hello_world 会报命令找不到的错误?这是因为 当前目录并不包含在$PATH 路径下。Linux执行一个程序时,总是在系统环境变量$PATH里找对应的可执行程序,如果找不到,就会报命令找不到的错误。我们可以打印出$PATH变量 echo $PATH ,显然,当前路径并没有包含在里面。

为了方便,系统管理员通常把Bash脚本保存在 /usr/local/bin 和 $USER/bin 目录下,因为这些目录默认包含在系统环境变量$PATH里。我喜欢在当前用户目录下新建一个 bin 目录,然后将该目录加入$PATH,就可以直接在这里编写Bash脚本了。

编写Bash脚本时手一滑,可能会将脚本命名为 test ,此时执行脚本会得到意想不到的结果:

使用 which 和 type 命令检查后发现,事实上执行了一条内置的Linux命令。此时就需要明确指定路径来执行该脚本了: ./test 。最好是能在命名时注意冲突,随着对Linux的熟悉,这种情况会慢慢好起来的。

最后为大家布置一道练习题:编写一个Bash脚本,在当前目录下生成一个日志文件,随意输入一些内容,备份该文件,并将原始日志文件内容清空。如果对Linux命令不熟悉,可能要查阅一些资料:如何输出一些文本到文件、如何清空文件内容等。

读者若对Bash脚本感兴趣,可阅读 Advanced Bash-Scripting Guide 深入学习,祝大家学习快乐!

热点内容
安卓faceplay怎么付款 发布:2025-09-16 03:32:34 浏览:581
安卓rom包里有什么 发布:2025-09-16 03:07:57 浏览:350
sql2005无法连接 发布:2025-09-16 03:04:21 浏览:679
预埋件算法 发布:2025-09-16 02:55:45 浏览:90
php取差集 发布:2025-09-16 02:46:58 浏览:971
ah脚本扫货 发布:2025-09-16 02:44:53 浏览:70
加密相册在哪里找到 发布:2025-09-16 02:37:30 浏览:631
我的世界公益服务器 发布:2025-09-16 02:26:18 浏览:832
我的世界对战服务器2021 发布:2025-09-16 02:13:05 浏览:742
苹果店教编程 发布:2025-09-16 01:55:33 浏览:534