不同的脚本执行方式

在 Unix 和类 Unix 系统中,执行脚本的方式主要有以下几种,每种方式都有其特定的用途和行为差异:

1.使用 bash 脚本 命令: - 这种方式是通过直接调用 bash 程序来执行脚本。 - 这意味着脚本将在 Bash shell 环境中运行,无论脚本的首行(shebang,如 #!/bin/sh)指定的是什么 shell。 - 这是在确信脚本需要 Bash 功能时使用的方法。

2.使用 sh 脚本 命令: - 使用 sh 命令执行脚本会在 sh(Bourne shell)环境中运行该脚本。 - sh 通常是系统的默认 shell,可能是 Bash、Dash 等 shell 的一个链接或兼容模式。 - 如果脚本是为 Bourne shell(或兼容 shell)编写的,使用 sh 执行它更合适。

3.使用 ./脚本 命令: - 使用 ./脚本 命令执行脚本时,必须为脚本文件设置执行权限(例如,使用 chmod +x 脚本 命令)。 - 这种方式将根据脚本首行的 shebang 行(如 #!/bin/bash)来确定使用哪个 shell 执行脚本。 - 这是最常用的执行脚本方式,因为它遵循脚本作者指定的 shell 环境。

4.使用 . 脚本source 脚本 命令: - 使用 .(也称为点命令)或 source 命令执行脚本会在当前 shell 环境中运行脚本,而不是启动一个新的 shell。 - 这意味着脚本中所有的变量和函数将在当前 shell 中有效,对当前环境有直接影响。 - 这种方式常用于配置文件(如 .bashrc.profile),这些文件设置环境变量或定义函数。

总结一下,这四种方式的主要区别在于执行脚本时所使用的 shell 环境和脚本对当前 shell 环境的影响程度。选择哪种方式取决于脚本的内容和你想要如何影响当前的 shell 环境。

source和.不改变当前进程号,./和sh改变当前进程号

source和.执行完脚本,脚本中变量能打印出来,./和sh执行完脚本,脚本变量打印不出来