如何从另一个脚本设置环境变量?

如何从另一个脚本设置环境变量?

WORKSPACE="$(git rev-parse --show-toplevel)"我在- 中设置了一个变量~/.bashrc,它本质上设置$WORKSPACE为 git 存储库的根目录,以便我可以为某些操作编写别名building an image,例如going to my component directory in the repo等。

现在我创建了一个 bash shell 脚本来创建一个具有指定目录名称和分支名称的新 git 工作树。我的脚本语法如下 - my_script -c <branch_name> -d <directory_name>

现在的挑战是,一旦我创建了一个新的工作树,变量$WORKSPACE应该设置为新创建的 git 工作树的目录名称。

目前我正在做——

cd $DIR -> which is `directory_name`
WORKSPACE="$(git rev-parse --show-toplevel)"

但这没有帮助,因为 的设置值$WORKSPACE适用于脚本运行的非交互式会话,而不适用于交互式 bash shell(从其中触发脚本)。因此,如果我触发别名来构建图像,它不会从新创建的工作树目录的上下文中触发。

我该如何解决这个问题?

答案1

在您将获得 git 命令的新值的目录中运行这一行: git rev-parse --show-toplevel > ~/tmpfile

然后将其添加到您的.bashrcWORKPLACE=$(cat ~/tmpfile)

终于跑了source ~/.bashrc

现在,您可以在文件系统中的任何位置引用 WORKPLACE 以及更新后的值。

tmpfile您可以轻松管理 的位置,但.bashrc也请务必指定位置。

相关内容