您的终端运行一个外壳程序(最有可能bash),它是一个请求您的命令并运行它们的程序。
除了这种交互模式,您还可以使用 shell 从文件运行命令。要执行文件中的命令,您可以直接调用 shell bash script,也可以使用“shebang”启动文件#!/bin/bash并使其可执行 ( chmod +x script)。然后,您可以将脚本视为二进制文件并执行,例如,./script将其放在 shell 正在寻找它的地方。( echo $PATH)
很可能您的交互式 shell 和用于运行的 shell 都是bash. 从“第一天学习 linux”的角度来看,bash 在两种模式下的工作方式完全相同。- 很久以后你可能会偶然发现细微的差异。如果您真的想详细了解,我建议您阅读man bash并搜索提到“交互式”的地方。(您可以按 搜索手册页/。)
需要注意的一件重要事情是脚本作为一个新进程运行。这尤其意味着脚本中设置的变量在调用 shell 中不可见。
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
Run Code Online (Sandbox Code Playgroud)
如果没有导出a,内部脚本甚至不可见。