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

Cyr*_*ARO 34 bash

我安装liquidprompt及文档中他们要求你添加[[ $- = *i* ]] && source ~/liquidprompt/liquidprompt在你的.bashrc.

我试图理解这一行的第一部分,但像我这样的bash菜鸟很难.如果有人有一个很好的医生或答案......

cho*_*oba 58

$- 包含当前的shell选项.

[[ ... ]],=如果没有引用,a的右侧被解释为模式.因此,*i*意味着i可能先于或后面的任何东西.

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

  • 由Liquidmptmpt维护者自己批准(谁在手册中写了该指令). (3认同)

123*_*123 14

它正在检查shell的选项是否$-包含其中的一个i.这i是互动的

Bash手册页:

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

也相关

  • 由Liquidmptmpt维护者自己批准(谁在手册中写了该指令). (2认同)