运行一次bash Shell 脚本上 Linux 命令 Line [Beginner’s Tip]

“当你可以尝试自动化 5 个小时的时候,永远不要花 5 分钟手工做某件事。”

这可能是讽刺,并且意味着自动化可能比手动执行需要更长的时间,但自动化对于电力公司来说是必要的 Linux 用户。 Shell 脚本构成自动化的基础 Linux。

运行的最简单方法 bash Shell-脚本是:

bash path_to_script

然而,更流行的方法是给予脚本执行权限,然后像这样运行脚本:

chmod u+x script.sh
./script.sh

让我一步步详细解释一下。

跑步 Shell 脚本在 Ubuntu

首先,我们来创建一个简单的 bash 脚本。 我将创建一个有用的 bash 显示可用磁盘空间和 RAM 的脚本:

#!/bin/bash

# Script that shows the available disk space and memory

# Disk space
echo -e "FREE DISK SPACE"
df -h /dev/sda

# Memory (RAM)
echo -e "nFREE MEMORY"
free -h

# Process ID or PID
echo -e "nPID = $$"

该脚本打印可用磁盘空间(在 /dev/sda)、内存和进程ID Shell。 我将其保存为“freespace.sh”。

要运行此脚本,您应该授予使用 chmod 命令可执行的操作的执行权限。 语法是:

chmod +x shell_script.sh

这里我给了系统中所有用户运行这个脚本的执行权限。 这就是 +x 日暗示。 这 ls -l 该命令列出文件的属性,包括权限。

您还可以使用 u+x 这仅授予您执行权限。

最后,使用以下语法运行脚本:

./shell_script.sh

是的,这是一种简单的运行方法 Shell-脚本。 这适用于所有需要在不调用解释器的情况下执行的脚本!

有关文件权限的更多信息,请参见 Linux 这里。

或者,使用口译员

每种脚本语言都有一个解释器,它一次直接执行脚本文件中的每一行。 如果脚本文件中发生错误,执行将在该特定行停止(在执行前面的行之后)。

要使用解释器运行脚本,我们不需要更改文件的权限。

在 Shell-您可以使用您使用的脚本 Shell 称呼。 自从我用了它 bash 我写了一篇 bash 脚本,我会打电话 sh 或者 bash

要运行脚本,您可以使用解释器调用它。

bash ./shell_script.sh

或者

sh ./shell_script.sh

您可以在此处输入相对路径或绝对路径。

使用source命令运行当前目录下的脚本 Shell 执行

默认情况下,一个 Shell- 在子 shell 中执行的脚本。 有时您可能希望脚本处于同一位置 Shell 自己跑。 这就是 source 命令发挥作用的地方。

使用此命令,您可以将某些内容粘贴到同一目录中 Shell A。 这主要用于更新对 bashrc 等文件所做的更改,而无需 Shell 离开。

您还可以使用它来运行脚本,例如:

source ./shell_script.sh

变量 $$ 可以用来获取当前使用的进程id Shell 来确定。 这是在 example 脚本如上所示。

请注意,脚本及其父进程的进程 ID (PID) Shell 是相同的,这意味着脚本位于相同的位置 Shell 并且不在新的子shell中运行。

点运算符(.)

另一种方式以相同的方式编写脚本 Shell 而不是在子 shell 中运行

点(.)代表 Shell 您使用后跟要运行的脚本。

. ./shell_script.sh

额外提示:在脚本运行时对其进行调试

使用解释器方法,您可以查看正在执行哪些命令,对脚本进行故障排除,并找到干扰执行的部分。

为此,您可以使用详细模式 (-v) 或 xtrace 模式 (-x) 来查看正在执行哪些语句。

详细模式显示每个命令执行之间的整个脚本。 作为参考,您可以查看下图。

Xtrace模式用于跟踪脚本中每个命令的执行情况。 这 + 符号显示执行前的命令(同时 ++ 用于表示命令的“运行”。

总结

我希望您喜欢这个基本但重要的执行教程 bash 脚本。

如果您是 bash 脚本编写新手,我们为您准备了十章的初学者 bash 系列。

如果您有任何问题或建议,请告诉我。