我有这条线,我.bashrc
想知道这到底是什么意思
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
我有这条线,我.bashrc
想知道这到底是什么意思
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
$-
表示“当前标志”。echo $-
返回“himBH”。这些都是默认值。[[ $- != *i* ]] && return
实际上做了上面评论中所说的:它检查是否设置了交互式标志。[[ 和 ]] 使它成为一个布尔值,因此它以“真”或“假”结束。"false && return" 让它继续 "true && return" 让它执行返回。更详细地解释了默认标志:
h 代表“hash all”:这告诉 bash 记住它通过查询 PATH 找到的命令的位置。
i 用于“交互式”:输入输入并返回输出。
m 表示“监视器”:这可以启用作业控制
B 代表“大括号展开”。这允许您使用大括号扩展
H代表“历史扩展”。这使您可以通过在其编号前加上感叹号来从历史记录中重新运行命令
顺便一提。我有 ...
我假设基本上做相同但更容易阅读。
基本上它的意思是“如果 shell 标志不包含小写 i,则在此处停止函数/脚本”。
表示 bash 中的条件表达式
表示外壳标志。如果 shell 是交互式的,它将包含“i”(即,您可以键入命令,而不是执行脚本)
简单的意思是“不等于”。
是一个通配符模式,匹配任何包含“i”的内容
没有任何参数只是意味着停止当前函数或脚本的执行。
是逻辑AND运算符。在这种情况下,右边的表达式只有在左边的表达式为true
return
时才会被计算(执行)。所以在许多编程语言中,它是一种简写——这被称为“短路评估”,当你使用它时,它会让编程老师发疯:Da && b
if a then b
我假设它就像它说的那样:如果 bash 没有在交互式 shell 中打开,那么不要做任何事情。
我不知道整个功能,但可能会在该行下方设置命令和标志,以防您确实在 TTY 中打开了 bash。