【发布时间】:2018-06-04 18:43:35
【问题描述】:
我有两个脚本:
fail_def.sh:
#!/bin/bash -eu
function fail() {
echo -e "$(error "$@")"
exit 1
}
bla.sh:
#!/bin/bash -eu
fail "test"
source fail_def.sh之后,我可以在终端中使用fail命令,没有任何问题。但是,当我拨打bla.sh 时,我总是得到line 2: fail: command not found。
无论我通过./bla.sh 或bash bla.sh 还是bash ./bla.sh 调用它都没有关系,错误仍然存在。
将source fail_def.sh 添加到bla.sh 的开头可以解决问题,但我想避免这种情况。
我正在开发一个在 Mac 上运行的 Ubuntu docker 容器,以防万一。
我尝试用谷歌搜索该问题并发现了一些类似的问题,但其中大多数似乎与未获取文件或混合了不同的 shell 实现有关,这两种情况似乎都不是。
我必须做些什么才能让 fail 命令在脚本中工作?
【问题讨论】: