“当你可以尝试自动化 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 系列。
如果您有任何问题或建议,请告诉我。