如何确定脚本内部 - 它是从 eshell 还是从普通 shell(bash 等)执行的?

最佳答案

Eshell 不设置任何特定的环境变量。您可以检查 $TERM :它在 Eshell 下设置为 dumb

更精确的检查将查看脚本的父进程

if [ -t 1 ] && [ "$TERM" = "dumb" ] && [ "$(ps -o comm= -p $PPID)" = "emacs" ]; then
  echo "This looks a lot like eshell"
fi

关于emacs - 脚本的执行环境(eshell vs bash),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9853068/

10-15 01:03