导入shell脚本功能

Reu*_*ben 21 bash shell

嗨,我是SHELL脚本的新手.实际上我err()在文件中有一个函数,文件abc没有.sh扩展名,但它们是简单的文件但是从开始#!/bin/bash

err () {
    echo "${1}" >&2 
}
Run Code Online (Sandbox Code Playgroud)

现在我将其导入到另一个文件中 xyz

source abc
someFunction(){ 
    err "Failed to back up"
}
Run Code Online (Sandbox Code Playgroud)

这是一种正确的进口方式吗?

Sib*_*ibi 23

是的,你可以像上面提到的那样做或者喜欢: . FILENAME

该文件无需结束 .sh


cda*_*rke 5

没关系,这里还有一些提示:

  1. 使用函数的命名约定,例如在函数名称前添加 前缀f_,例如f_err。函数调用看起来与其他命令没有什么不同,这是对读者的一个提示。它还减少了名称冲突的机会。

  2. 您只需要读取访问权限,并且不需要#!/bin/bash(它只是一个注释)。

  3. 在 Bash 中,在函数解析之前必须设置一些选项。例如,shopt -s extglob如果使用扩展通配符,则必须在函数之前和外部完成。将其放入函数内为时已晚。

  4. Bash 不支持 FPATH 环境变量或自动加载(与 Korn shell 不同)。