确定给定 ksh 调用是否正在运行交互式 shell 的首选方法是什么?
我在 ENV
中有一些命令我想跳过非交互式 ksh 调用的文件(例如,在执行 shell 脚本时)。
我看到建议测距 from :
if [[ $- = *i* ]]; then
# do interactive stuff
fi
...甚至不采购
.kshrc
除非使用这个神秘的 incantation 确定 shell 是交互式的:ENVIRON=$HOME/.kshrc export ENVIRON
ENV='${ENVIRON[(_$-=1)+(_=0)-(_$-!=_${-%%*i*})]}' export ENV
最佳答案
我发现检查 $- 变量的 'i' 标志是 ksh 中的最佳方法。
if [[ $- = *i* ]]; then
#do interactive stuff
fi
关于shell - 在 ksh ENV 脚本中检测交互式 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945302/