【发布时间】:2016-03-05 06:20:01
【问题描述】:
我试图弄清楚BASH man page tab completion script 顶部的某行代码是如何工作的:
[[ $OSTYPE == *@(darwin|freebsd|solaris|cygwin|openbsd)* ]] || _userland GNU \
|| return 1
我相信这是一个守卫;如果 BASH 特殊变量 $OSTYPE 不包含括号内的(基本正则?)表达式中的字符串之一,或者如果用户空间是 GNU,那么它将停止执行脚本。但是,我无法理解语法的工作原理或含义,也不知道控制流是什么。
你可以找到_userlandhere的定义:
# Check if we're running on the given userland
# @param $1 userland to check for
_userland()
{
local userland=$( uname -s )
[[ $userland == @(Linux|GNU/*) ]] && userland=GNU
[[ $userland == $1 ]]
}
这个功能是如何工作的?它是否返回一个值?
如果您能提供相关文档或文章的参考资料,那将很有帮助。谢谢。
【问题讨论】: