确定是否bash / zsh / etc.午夜指挥官正在奔跑

时间:2014-08-04 00:05:06

标签: bash shell zsh mc

简单的问题。我想知道如何判断当前shell是否作为mc子shell运行。如果是,我想进入降级模式而没有mc无法处理的某些功能。

特别是,我想要

  • 尽可能便携
  • 不依赖于shell之外的任何内容和基本的通用外部命令。

1 个答案:

答案 0 :(得分:2)

虽然手册页中没有记录,但快速实验表明mc设置了两个环境变量:$MC_TMPDIR$MC_SID。 (它还会设置$HISTCONTROL,但这不是mc特有的;它会影响bash的行为,并且可能由mc以外的其他内容设置。)

如果您不想依赖未记录的功能,则可以自己设置环境变量。例如,在bash中:

mc() { MC_IS_RUNNING=1 command mc "$@" ; }

进入“降级模式”是另一回事;我不确定你是怎么做到的。我不知道在bash中有什么方法可以禁用指定的功能。您可以通过定义覆盖它们的函数来禁用所选的内置命令。您有什么功能?