创建 Shell 脚本

shell 脚本是一个文本文件,其中包含一系列 UNIX 命令。
shell 脚本通常是一个可以重复使用的命令序列。
通常,我们可以通过在命令行中输入 shell 脚本的名称来执行 shell 脚本中的命令序列。

要创建 shell 脚本,请创建一个文件,然后将 UNIX 命令放入其中。
UNIX 命令包括标准实用程序、用户程序以及完成任务所需的其他脚本的名称。

脚本文件可以具有遵循操作系统环境中常规文件名约定的任何名称。
命名 shell 程序时,应避免使用与现有 UNIX 命令或者 shell 函数冲突的名称。

以下示例脚本使用 echo 命令在调用创建输出的实际命令之前通知用户预期的输出。
编写脚本时最好通知用户正在发生的事情,以便他们了解脚本是否正确运行。

# vi my_script.sh
#!/bin/sh
clear
echo "SCRIPT BEGINS"
echo "Hello $LOGNAME!"
什么是 Shell 脚本?如何创建 Shell 脚本?

在脚本中添加注释

编写脚本的人通常不是阅读脚本的唯一人。
许多人运行其他人编写的脚本。
如果他们查看脚本文件的内容以了解脚本的作用,那么脚本作者在注释中包含一些解释会很有帮助。

将注释放入程序和 shell 脚本中是一种很好的做法。
注释应解释脚本的目的,并应解释可能特别令人困惑的任何特定行。

下面显示的示例脚本 my_script.sh 在脚本的开头有一个注释,解释了脚本在运行时的作用。

# cat my_script.sh
#!/bin/sh
# This script clears the window, greets the user.
clear
echo "SCRIPT BEGINS"
echo "Hello $LOGNAME!"

添加注释不会影响脚本的执行,除非添加注释时引入了语法错误。
注释用于文档目的,因此阅读脚本的人会知道执行脚本时会发生什么。

注释有时是在 shell 脚本中输入的第一行。
注释可以列出需要进行的分步操作。
操作系统命令按照每个注释行执行操作。

什么是shell ?

shell 是一个程序,它提供用户和操作系统 (OS) 内核之间的接口。
当用户登录或者打开终端或者控制台窗口时,操作系统会为每个用户启动一个 shell。

使用 #! 开始脚本人物

通过在命令行中键入脚本名称来运行具有执行权限的脚本时,我们应该知道将运行该脚本的子 shell(sh、csh、ksh、bash 或者其他子 shell)。

脚本的第一行确定作为脚本解释器创建的 shell。
脚本第一行的前两个字符是 #!。
当前 shell 将后面的内容解释为子 shell 执行脚本的路径名。

在以下示例中,指定的 shell 被派生为运行脚本的子 shell。

#!/bin/sh 
#!/bin/csh 
#!/bin/ksh

什么是 Shell 脚本?

shell 脚本是一个包含 shell 和 UNIX 命令的文件。
与编译后的可执行程序类似,shell 脚本具有特定用途且可重用。
当 shell 脚本中的命令有序且无错误时,我们可以执行 shell 脚本以高效地执行任务。

所有脚本、程序和过程都使用以下规则:

  • 他们应该没有错误地执行。
  • 他们执行他们想要完成的任务。
  • 它们确保程序逻辑明确定义或者显而易见。
  • 它们不应包含不必要的工作。
更多: zhilu jiaocheng

执行 Shell 脚本

要像在系统上执行其他命令一样执行 shell 脚本,请首先使用 chmod 命令为其分配执行权限;例如 :

# chmod +x my_script.sh

这是执行 shell 脚本的首选和最常用的方法。
创建一个子shell来执行指定的脚本。
仅向需要执行脚本的用户授予执行权限。

在子shell中执行脚本时,脚本中创建和使用的变量、别名和函数仅在子shell中已知。
在脚本完成并且控制权返回到父 shell 之后,脚本对 shell 状态所做的变量、函数和其他更改将不再为人所知。

以下示例在当前 shell 中运行脚本:

# . ./my_script.sh

以下示例显示了使用调试执行脚本:

# sh -x my_script.sh

让我们执行我们在上一节中创建的脚本,看看它是否输出正确的结果。

sh my_script.sh
SCRIPT BEGINS
Hello root!
日期:2020-09-17 00:13:27 来源:oir作者:oir