如果不是以交互方式运行,如何从 .bashrc 返回?

如果不是以交互方式运行,如何从 .bashrc 返回?

~/.bashrc如果 shell 不是交互式的,我有两个要返回的语句,可能来自两个 Ubuntu 版本,但我无法重建哪一个是较新的(因此我认为更好),并且我对不同方法的效果很感兴趣:

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

对阵

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

答案1

根据Bash 黑客维基,最可靠的方法是检查i变量中字母是否存在$-(第二种方法)。

有更简洁的方法来实现这个操作,如下所示:

[[ $- == *i* ]] || return

如需了解更多信息,请查看这个答案在 Unix&Linux StackExchange 社区上。

相关内容