我在文件abc
中err()
了一个函数。这些文件没有.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