如何确定脚本内部 - 它是从 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/