我有一个 Ubuntu 20.04 安装。我似乎无法使用sh
Ubuntu 的默认值来获取文件dash
。
我有一个文件,可以说build.env
,其中包含一些环境变量,如下所示:
构建环境:
SOMEVAR=something
A_VAR=some_value
我可以在 bash 上使用. build.env
or来获取它source build.env
。但是,如果我尝试. build.env
使用 sh,我会得到
sh: 1: .: build.env: not found.
我可以stat
或cat
文件,但我无法获取它。为什么?
POSIX 需要(
.
dot) 命令,它应该在. 你得到的错误sh
确实来自
.
。就是build.env
没有找到。这是因为您
sh
遵循规范:在您的情况下
build.env
,您的PATH
. 你需要到
build.env
驻留在当前工作目录中的源。笔记:
.
Bash 中的 (builtin) 的行为就像最后PATH
包含.
(当前工作目录) 一样。这意味着. build.env
实际上可以在 Bash 中使用。可能这就是您期望它在sh
.source
.cat build.env
(或stat build.env
等)不同于. build.env
因为cat
不PATH
用于定位build.env
。因为它的build.env
意思./build.env
。