Bash和bashshell是Linux系统的主要管理组件。在bash上运行命令以完成任务或作业。这些命令可以存储在称为shell脚本的文件中。shell脚本用于运行单个或多个命令,只需调用shell脚本文件,而无需反复编写命令。shell脚本具有 *.sh扩展 在本教程中,我们将学习如何以不同的方式运行shell脚本文件。
创建Shell脚本或脚本文件
在开始运行shell脚本文件之前,我们先创建一个脚本文件。只需创建一个文本文件 *sh先生 分机。然后将一些shell命令放入其中。在本例中,我们创建名为 系统信息.sh .
hostnamectl
echo "This is a shell script."
使Shell脚本可执行并运行
执行或运行shell脚本最常用的命令方式是使其可执行,然后调用。默认情况下,shell文件只是一个包含一些文本的文件。它可以通过使用chmod命令由shell执行。在下面的示例中,我们使systeminfo.sh shell脚本文件可供当前用户执行。
chmod u+x systeminfo.sh
我们可以用下面的ls命令检查shell脚本文件是否可执行。
ls -l systeminfo.sh
输出如下所示,其中用户具有execute权限,该权限用x字母表示。
-rwxrw-r-- 1 ismail ismail 44 Oca 28 04:18 systeminfo.sh
现在我们可以通过调用脚本文件的名称和路径来直接运行或执行脚本文件。如果脚本文件在当前工作目录中,可以如下所示调用它。
./systeminfo.sh
![图片[1]-如何在Linux中运行Shell脚本(.sh文件)?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2021/01/linuxtect_image-65.png)
或者,如果shell脚本是另一个目录,那么当前工作目录可以指定执行它的完整或绝对路径。这是一种更可靠的方法,可以在任何情况下正确执行脚本文件。
/home/ismail/systeminfo.sh
使用bash命令直接运行Shell脚本
每个bash shell命令都通过bash解释器进行解释和执行。bash解释器是位于/usr/bin/bash的可执行文件。我们可以直接将shell脚本文件提供给bash二进制文件来执行它。此方法不需要使脚本文件可执行。在下面的示例中,我们通过bash二进制或命令执行shell脚本文件。
bash ./systeminfo.sh
或者,可以如下所示指定shell脚本文件的完整路径。
bash /home/ismail/systeminfo.sh
以根用户身份运行Shell脚本
默认情况下,shell脚本作为具有当前用户权限的当前用户执行。但在某些情况下,我们可能需要以root身份或以root权限运行shell脚本文件。我们可以在执行shell脚本文件时使用sudo命令。
sudo ./systeminfo.sh
通过shell脚本文件的绝对路径,sudo命令可以如下所示进行合并。
sudo /home/ismail/systeminfo.sh
通过GUI运行Shell脚本(桌面环境)
Shell脚本文件也可以通过GUI或桌面环境运行。但首先应该为执行启用它。右键单击脚本文件,然后单击下面的属性。
![图片[2]-如何在Linux中运行Shell脚本(.sh文件)?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2021/01/linuxtect_image-66.png)
在“属性”窗口中,导航到“权限”选项卡并检查“执行”配置。这允许以程序的形式执行文件。
![图片[3]-如何在Linux中运行Shell脚本(.sh文件)?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2021/01/linuxtect_image-67.png)
运行时调试Shell脚本
shell脚本文件类似于执行不同命令的应用程序。可以调试shell脚本以检测bug或错误。此外,还可以调试shell脚本文件,以获取有关shell脚本执行的详细信息。这个 -十 参数与bash命令一起用于调试shell脚本文件。
bash -x ./systeminfo.sh
将Shell脚本输出保存到文件中
一些shell脚本创建一些输出,这些输出被打印到标准输出或终端中。通过使用 >操作员 . 在下面的示例中,我们将“systeminfo.sh”shell脚本输出重定向到名为“output.txt”的文件中。
./systeminfo.sh > output.txt
相关文章: Linux Bash中的$0脚本文件名参数用法