【问题标题】:What does [[ $- = *i* ]] mean in bash?[[ $- = *i* ]] 在 bash 中是什么意思?
【发布时间】:2015-09-18 06:14:11
【问题描述】:

我正在安装 liquidprompt 并且在文档中他们要求您将 [[ $- = *i* ]] && source ~/liquidprompt/liquidprompt 添加到您的 .bashrc 中。

我试图理解这行的第一部分,但对于像我这样的 bash 新手来说很难。如果有人有一个不错的文档或答案...

【问题讨论】:

标签: bash


【解决方案1】:

$- 包含当前的 shell 选项。

[[ ... ]] 中,= 的右侧如果未引用则被解释为模式。因此,*i* 表示 i 可能在任何内容之前或之后。

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

【讨论】:

  • 由liquidprompt 维护者本人批准(他在手册中编写了该说明)。
【解决方案2】:

它正在检查shell $- 的选项中是否包含ii 用于交互

来自Bash man page

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

Also relevant

【讨论】:

  • 由liquidprompt 维护者本人批准(他在手册中编写了该说明)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 2016-05-24
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2012-04-19
  • 2021-07-12
相关资源
最近更新 更多