如果你用过Linux操作系统可能听说过bash,bash是一种用于读取和执行各种命令的Unix shell(Unix命令行解释器),通常运行于文本窗口中,并能执行用户直接输入的命令。本文将详细介绍bash脚本的原理及编写过程。
一、bash是什么
bash全称为Bourne-Again Shell,是一个Unix shell和命令语言解释器,用于读取shell命令并与操作系统交互以执行这些命令。
要完全理解bash shell脚本,需要了解两个概念:
1、Shell
Shell是一个宏处理器,使用命令与操作系统交互,可以检索、处理和存储计算机上的信息。
2、脚本
脚本编写是将shell命令编译成一个新文件的过程,该过程使用文本编辑器完成。
当在文本编辑器中编写bash时,实际上是在编译bash命令或bash函数——一组可以通过函数名多次调用的命令。然后,文本会被保存为一个扩展名为.sh的可执行bash脚本文件。
二、使用bash脚本的优势
bash脚本可以帮助简化工作流程,因为它们可以将许多冗长的命令编译成一个可执行的脚本文件。例如需要在特定的时间间隔运行多个命令,可以编译一个bash脚本,而无需手动逐个输入和执行这些命令。只有在必要时才需要执行脚本文件。
1、结构良好的命令:将命令按顺序排列,确保每次执行脚本时都能按正确的顺序运行。
2、任务自动化:使用cron的定时任务调度器,在任何预设时间自动执行脚本。
3、透明性:脚本内容以可读文本文件的形式呈现,任何人都可以查看。但是,如果使用其他编程语言(例如C++)编写的程序运行这些命令,则需要访问源代码。
4、可移植性:如果将脚本移植到其他Linux发行版,只要该操作系统支持shell命令,脚本仍然可以运行。
三、bash命令汇总
bash几乎适用于所有基于Unix的操作系统,并且无需单独安装。首先需要一个Linux命令行界面,也称为Linux终端,是一个包含shell的程序,允许执行bash脚本。
使用以下命令检查Unix操作系统上可用的shell列表:
cat/etc/shells
输出应显示如下列表:
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
每个bash shell脚本都需要以#!开头,后跟bash解释器的绝对路径。要查看路径,请输入以下命令:
which bash
应产生以下输出:
/bin/bash
这是大多数Unix操作系统上bash解释器的标准路径。要让shell知道它应该使用bash解释器运行命令,请在脚本开头添加以下行:
#!/bin/bash
注意:Linux有一个bash shell命令手册。它包含所有技术术语和标准shell变量的说明。输入并执行man bash命令即可在终端上显示该手册。
下一步是使用文本编辑器将命令编写并编译到.sh文件中。你需要一个Unix文本编辑器,例如VIM或GNUNano。在本教程中将使用Nano文本编辑器,通过输入以下命令来创建文件:
nano function.sh
执行后将打开一个新的.sh文件供你编辑。输入#!/bin/bash,再输入bash命令。
使用Nano文本编辑器编辑完成后,按CTRL+X关闭它,然后按Y和Enter保存更改。
四、bash脚本运行教程
1、使用bash命令
第一种方法是从相应的目录使用bash命令。例如在Test/bash目录中有一个名为function.sh的bash脚本,其中包含简单的echo函数。必须先打开该目录。
使用以下命令:
cd Test/Bash
然后,执行以下bash命令来运行bash脚本:
bash function.sh
会看到类似这样的输出:
如果尝试在不使用bash命令的情况下运行脚本,则会收到“命令未找到”的错误消息。
2、使用./命令
可以在不使用bash命令的情况下运行bash脚本。但是,必须使用以下命令从相应的目录设置文件的执行权限:
chmod +x function.sh
此命令会修改文件权限,以便所有人都可以执行该文件。完成上述步骤后,使用以下命令执行bash脚本:
./function.sh
如果权限设置不正确,终端将显示“Permission denied”错误消息:
与bash命令类似,如果命令中未使用./,也会收到“command not found”错误。
3、从其他目录运行脚本
最后一种方法是从其他目录运行脚本。创建bash脚本后,使用pwd命令查找当前目录。知道路径后,即可从任何目录运行脚本。例如,使用以下命令从主目录运行function.sh:
bash Test/Bash/function.sh
并且无论当前位于哪个目录,都可以使用cd命令直接进入主目录。
-
广告合作
-
QQ群号:4114653




