确定给定 ksh 调用是否正在运行交互式 shell 的首选方法是什么?
对于非交互式 ksh 调用(例如,在执行 shell 脚本时),我在一个ENV
文件中有一些我想跳过的命令。
我已经看到建议范围从:
if [[ $- = *i* ]]; then
# do interactive stuff
fi
...甚至不采购,除非使用这种神秘的咒语.kshrc
确定外壳是交互式的:
ENVIRON=$HOME/.kshrc export ENVIRON
ENV='${ENVIRON[(_$-=1)+(_=0)-(_$-!=_${-%%*i*})]}' export ENV