使用 source 命令将函数和变量导入 Bash | Linux 中国
source 就像 Python 的 import 或者 Java 的 include。学习它来扩展你的 Bash 能力。
- 来源:https://linux.cn/article-12346-1.html
- 作者:Seth Kenlon
- 译者:geekpi
(本文字数:3145,阅读时长大约:4 分钟)
登录 Linux shell 时,你将继承特定的工作环境。对于 shell 而言,“ 环境(environment)”意味着已经为你设置了某些变量,以确保你的命令可以按预期工作。例如,PATH 环境变量定义 shell 从哪里查找命令。没有它,几乎在 Bash 中尝试执行的所有操作都会因“命令未发现” 错误而失败。在执行日常任务时,环境对你几乎是不可见的,但它很重要。
有多种方法可以影响你的 shell 环境。你可以在配置文件中进行修改,例如 ~/.bashrc
和 ~/.profile
,你可以在启动时运行服务,还可以创建自己的自定义命令或编写自己的 Bash 函数 。
通过 source 添加到你的环境
Bash(以及其他一些 shell)有一个称为 source
的内置命令。这就是令人困惑的地方:source
执行与命令 .
相同的功能(是的,那只是一个点),而与 Tcl
命令的 source
不是同一个(如果你输入 man source
,也许在屏幕上显示的是它)。实际上,内置的 source
命令根本不在你的 PATH
中。这是 Bash 附带的命令,要获取有关它的更多信息,可以输入 help source
。
.
命令兼容 POSIX。 但 source
命令不是 POSIX 定义的,但可以与 .
命令互换使用。
根据 Bash help
,source
命令在你当前的 shell 中执行一个文件。 “在你当前的 shell 中” 这句很重要,因为它表示它不会启动子 shell。因此,用 source
执行的任何操作都发生在内部并影响当前环境。
在探讨 source
对环境的影响之前,请用 source
命令导入一个测试文件,以确保其按预期执行代码。首先,创建一个简单的 Bash 脚本并将其保存为 hello.sh
:
#!/usr/bin/env bash
echo "hello world"
相关文章