为什么源相同的脚本两次会退出 shell?

为什么源相同的脚本两次会退出 shell?

我编写了一个 bash 脚本来创建 git 工作树-cr_wt

#!/bin/bash

unset CDET_ID
unset WT_DIR

source ~/.bashrc

usage()
{
    echo "Usage: $0 [ -c CDET_ID ] [ -d Directory Name ]"
    exit 2
}

while getopts 'c:d:h' flag
do
    case $flag in
        c) CDET_ID=$OPTARG ;;
        d) WT_DIR=$OPTARG ;;
        h) usage
    esac
done

if [[ -n $CDET_ID ]] && [[ -n $WT_DIR ]]
then
    cd $REPO
    git worktree add -b $CDET_ID.my_branch $WT_DIR origin/my_branch 
    cd $WT_DIR
    WS="$(git rev-parse --show-toplevel)"
else
    usage
fi

我启动这个脚本就像 - . cr_wt -c <cdet_id> -d <dir_name>

我实际上正在采购它,因为我可以保存它$WS存储我的 git 存储库的根目录。我的许多别名依赖于$WS在存储库中导航。因为我想设置$WS为创建为 git worktree 的新目录。我来源了这个脚本。

我面临的问题是 - 在我运行/获取这个脚本之后 - . cr_wt -c <cdet_id> -d <dir_name>

git worktree 被创建。之后,如果我再次获取脚本,例如 - . cr_wt -c <cdet_id> -d <dir_name>

然后 bash shell 就会退出。

相关内容