Linux(基础) - 如何根据终端的生成方式在 bashrc 中使用条件命令?

Linux(基础) - 如何根据终端的生成方式在 bashrc 中使用条件命令?

我在 Ubuntu 中使用 Guake 终端。

我已将以下行添加到我的 bashrc 中:

guake -e “cd /home/jasoons/Documents/Termainal” -r 启动

这将在该目录中打开一个名为“launch”的选项卡,我将在其中放置有用的脚本。我将使用其中一些脚本来配置 Guake 的选项卡或其他任何内容,具体取决于我想要处理的内容;如详细说明这里

问题是,如果其中一个脚本在特定目录中打开一个新的 Guake 选项卡,那么 bashrc 中的该行将覆盖我想要打开的任何目录。

我想到的一个解决方案是这样的:

#in bashrc
if [USE SOME CONDITIONAL]; then
guake -e "cd /home/jasoons/Documents/Termainal" -r launch
fi

#in script
guake -n /home/jasoons/Desktop/Programming/ -r "ownComp" -e "SET SOME CONDITIONAL"

如何填写“USE SOME CONDITIONAL”和“SET SOME CONDITIONAL”以避免此问题?

还有其他建议吗?这是解决这个问题的合适思路吗?

答案1

您需要使用环境变量,例如KEEP_WD,该变量应被导出以确保它将被传递给运行 的任何 shell 化身.bashrc。您的命令将变为:-

.bashrc

if [ -z "$KEEP_WD" ]; then
    guake -e "cd /home/jasoons/Documents/Termainal" -r launch
fi

在脚本中:

guake -n /home/jasoons/Desktop/Programming/ -r "ownComp" -e "export KEEP_WD=y"

相关内容