有没有更好的方法可以找出 zprezto 模块一部分的脚本位置?

有没有更好的方法可以找出 zprezto 模块一部分的脚本位置?

我正在编写一个自定义模块来扩展兹普雷托给我自己的框架。目标是能够通过名称正确配置来启动 tmux。这是我的自定义模块的代码init.zsh

SCRIPT=${0:A}
export _MYTMUX_SDIR=`dirname $SCRIPT`

function start_tmux {
    PROJECT_NAME=$1
    tmux has-session -t $PROJECT_NAME 2>/dev/null
    if [ "$?" -eq 1 ] ; then
        echo "No Session found. Creating and configuring..."
        tmux new-session -d -s $PROJECT_NAME
        tmux source-file ${_MYTMUX_SDIR}/tmux-${PROJECT_NAME}.conf
    else
        echo "Session found. Connecting."
    fi
    tmux attach-session -t $PROJECT_NAME
}


function start_aws {
    start_tmux aws
}

function start_digitalocean {
    start_tmux digitalocean
}

我被迫导出一个变量_MYTMUX_SDIR来跟踪脚本的位置。这是必需的,因为 tmux 配置文件与模块 init.zsh 脚本位于同一位置。

如果我将此代码放入函数体内,它将提供调用该函数的目录位置。

我的问题:

有没有更好的方法来找出脚本位置?我想避免不必要地将变量放入环境中。

相关内容