如何开始写一个脚本
一个脚本与其它文件的区别是它的首行,它包含 #!
(She-Bang - 释伴:定义文件类型)和路径名(解释器路径),通知系统该文件是一个命令集合,将被指定程序(解释器)解释。
下面是不同类型脚本 首行
示例:
1. `#!/bin/sh [sh 脚本]`
2. `#!/bin/bash [bash 脚本]`
3. `#!/usr/bin/perl [perl 程序]`
4. `#!/bin/awk -f [awk 脚本]`
注意:如果脚本仅包含一组标准系统命令,没有任何内部 Shell 指令,首行或 #!
可以去掉。
如何在 Linux 操作系统执行 Shell 脚本
调用一个脚本脚本的常规语法是:
1. `$ 脚本名 参数1 ... 参数N`
另一种可能的形式是明确指定将执行这个脚本的 Shell,如下:
1. `$ shell 脚本名 参数1 ... 参数N`
示例:
1. `$ /bin/bash 参数1 ... 参数N [bash 脚本]`
2. `$ /bin/ksh 参数1 ... 参数N [ksh 脚本]`
3. `$ /bin/sh 参数1 ... 参数N [sh 脚本]`
对于没有 #!
作为首行,仅包含基础系统命令的脚本,示例如下:
1. `### 脚本仅包含标准系统命令`
2. `cd /home/$USER`
3. `mkdir tmp`
4. `echo "tmp directory created under /home/$USER"`
使它可执行并运行,如下:
1. `$ chmod +x 脚本名`
2. `$ ./脚本名`
启用 Shell 脚本调试模式的方法
下面是主要的 Shell 脚本调试选项:
* `-v` (verbose 的简称) - 告诉 Shell 读取脚本时显示所有行,激活详细模式。
* `-n` (noexec 或 no ecxecution 简称) - 指示 Shell 读取所有命令然而不执行它们,这个选项激活语法检查模式。
* `-x` (xtrace 或 execution trace 简称) - 告诉 Shell 在终端显示所有执行的命令和它们的参数。 这个选项是启用 Shell 跟踪模式。
1、 改变 Shell 脚本首行
第一个机制是改变 Shell 脚本首行,如下,这会启动脚本调试。
1. `#!/bin/sh 选项`
其中, 选项可以是上面提到的一个或多个调试选项。
2、 调用 Shell 调试选项
第二个是使用如下调试选项启动 Shell,这个方法也会打开整个脚本调试。
1. `$ shell 选项 参数1 ... 参数N`
示例:
1. `$ /bin/bash 选项 参数1 ... 参数N`
3、 使用 Shell 内置命令 set
第三个方法是使用内置命令 set
去调试一个给定的 Shell 脚本部分,如一个函数。这个机制是重要的,因为它让我们可以去调试任何一段 Shell 脚本。
我们可以如下使用 set
命令打开调试模式,其中选项是之前提到的所有调试选项。
1. `$ set 选项`
启用调试模式:
1. `$ set -选项`
禁用调试模式:
1. `$ set +选项`
此外,如果我们在 Shell 脚本不同部分启用了几个调试模式,我们可以一次禁用所有调试模式,如下:
1. `$ set -`
网友评论