什么[[$ - = * i *]]在bash中意味着什么?

时间:2015-07-01 07:43:48

标签: bash

我正在安装liquidprompt,并在文档中要求您在[[ $- = *i* ]] && source ~/liquidprompt/liquidprompt中添加.bashrc

我试图了解该系列的第一部分,但像我这样的bash中的菜鸟很难。如果有人有一个很好的文件或答案......

2 个答案:

答案 0 :(得分:58)

$-包含当前的shell选项。

[[ ... ]]中,=的右侧被解释为未引用的模式。因此,*i*表示i可能先于或后跟任何内容。

换句话说,它检查i选项是否存在,即当前shell是否是交互式的。

答案 1 :(得分:13)

检查shell $-的选项是否包含ii用于交互式

来自Bash man page

  

交互式shell是在没有非选项参数的情况下启动的          没有-c选项,其标准输入和错误都已连接          终端(由isatty(3)确定),或以-i开头的终端          选项。 PS1已设置且$ - 包括i,如果bash是交互式的,则允许          用于测试此状态的shell脚本或启动文件。

Also relevant