awk 库的路径

awk 库的路径

我有一个 awk 文件,densel.awk其中包含以下调用

@include "klnpan.awk"

似乎需要包含“mylib.awk”的路径,即使它存在于同一目录中,因为

error: cannot open source file `klnpan.awk' for reading: No such file or directory

我运行densel.awk如下

awk -f "${path}"/densel.awk

答案1

awk被编写来寻找变量AWKPATH。它可以包含一个:分隔的字符串(类似于$PATH),它将在其中查找文件。

默认值取决于构建,但可能类似于.:/usr/local/share/awk这意味着它将在当前目录和系统目录中查找文件。

您可以将其设置为您的应用程序目录;例如

export AWKPATH=/path/to/awk/files
awk -f densel.awk

答案2

我在 .bashrc 中执行此操作来设置 AWKPATH:

    if [[ -d $HOME/gawk ]] && command -v gawk >/dev/null; then
        if [[ -n $AWKPATH ]]; then
            AWKPATH=$(gawk 'BEGIN {print ENVIRON["AWKPATH"]}')
            export AWKPATH
        fi
        if [[ ":$AWKPATH:" != *:"$HOME/gawk":* ]]; then
            AWKPATH+=":$HOME/gawk"
        fi
    fi

替换$HOME/gawk为您存储 gawk 库的位置。

另外,由于所有这些功能都是 GNU awk 独有的,因此您可能想习惯于键入gawk

相关内容