我正在编写一个自定义模块来扩展兹普雷托给我自己的框架。目标是能够通过名称正确配置来启动 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 脚本位于同一位置。
如果我将此代码放入函数体内,它将提供调用该函数的目录位置。
我的问题:
有没有更好的方法来找出脚本位置?我想避免不必要地将变量放入环境中。