1

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

特别是,我希望这样

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

1 回答 1

2

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

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

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

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

于 2014-08-04T00:29:26.100 回答