【发布时间】:2015-09-18 06:14:11
【问题描述】:
我正在安装 liquidprompt 并且在文档中他们要求您将 [[ $- = *i* ]] && source ~/liquidprompt/liquidprompt 添加到您的 .bashrc 中。
我试图理解这行的第一部分,但对于像我这样的 bash 新手来说很难。如果有人有一个不错的文档或答案...
【问题讨论】:
标签: bash
我正在安装 liquidprompt 并且在文档中他们要求您将 [[ $- = *i* ]] && source ~/liquidprompt/liquidprompt 添加到您的 .bashrc 中。
我试图理解这行的第一部分,但对于像我这样的 bash 新手来说很难。如果有人有一个不错的文档或答案...
【问题讨论】:
标签: bash
$- 包含当前的 shell 选项。
在[[ ... ]] 中,= 的右侧如果未引用则被解释为模式。因此,*i* 表示 i 可能在任何内容之前或之后。
换句话说,它检查i 选项是否存在,即当前shell 是否是交互式的。
【讨论】:
它正在检查shell $- 的选项中是否包含i。 i 用于交互
交互式 shell 是在没有非选项参数的情况下启动的,并且 没有标准输入和错误都连接的 -c 选项 到终端(由 isatty(3) 确定),或以 -i 开头的终端 选项。 PS1 已设置并且 $- 包括 i 如果 bash 是交互式的,则允许 用于测试此状态的 shell 脚本或启动文件。
【讨论】: