我err()
在文件中有一个函数abc
。这些文件没有.sh
扩展名,但它们以#!/bin/bash
.
err () {
echo "${1}" >&2
}
现在我将它导入到另一个文件中xyz
:
source abc
someFunction(){
err "Failed to back up"
}
这是正确的导入方式吗?
是的,你可以像上面提到的那样做,或者像:. FILENAME
该文件不需要以.sh
没关系,这里还有一些提示:
对函数使用命名约定,例如在函数名称前加上f_
,例如f_err
. 函数调用与其他命令没有什么不同,这是给读者的一个提示。它还减少了名称冲突的机会。
您只需要读取权限,并且不需要#!/bin/bash
(它只是一个评论)。
在 Bash 中,必须在函数解析之前设置一些选项。例如,shopt -s extglob
如果它使用扩展通配符,则必须在函数之前和外部完成。把它放在函数中为时已晚。
Bash 不支持 FPATH 环境变量或自动加载(就像 Korn shell 一样)。
您需要导出新创建的函数
在末尾abc
添加:
export -f err