首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[.exe ]这个gnuwin32程序做了什么?

[.exe ]这个gnuwin32程序做了什么?
EN

Stack Overflow用户
提问于 2008-11-18 22:58:57
回答 3查看 939关注 0票数 3

查看gnuwin32/bin目录,有一个名为[.exe的奇怪的程序文件

我在文档、gnuwin32.sourceforge.net或谷歌搜索中都找不到它,所以我运行它并得到:

代码语言:javascript
复制
$ [
[: missing `]'
$

所以我给了它]作为参数,并得到了

代码语言:javascript
复制
$ [ ]

$

它没有抱怨,所以我认为它在正确的轨道上。我试过了:

代码语言:javascript
复制
$ [ hello ]

再说一次,没有抱怨。所以我尝试了一个算术表达式:

代码语言:javascript
复制
$ [ 1 + 1 ]
[: +: binary operator expected
$

我尝试了一堆不同的组合,包括前缀和后缀表示法,但似乎都不起作用。这玩意儿是做什么的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-18 23:12:39

它用于计算条件表达式。

它等同于(可能是指向?的符号链接?)test可执行文件。

手册页是here

您可能会在很多bash脚本中看到这一点:

代码语言:javascript
复制
if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

有趣的是,[不是bash语言的一部分,它实际上是一个可执行文件,其返回代码由“IF”使用。这就是为什么[及其第一个参数后面的空格是必需的-如果省略它,脚本将尝试执行["$LOGNAME"并失败。

你不能用它做算术运算--使用expr (参见here)。但是,您可以测试广泛的文件属性(它是否存在?它是什么类型的?等)以及对字符串和数字使用比较运算符。

票数 5
EN

Stack Overflow用户

发布于 2008-11-18 23:00:03

代码语言:javascript
复制
test a

==

代码语言:javascript
复制
[ a ]

只是糖而已

编辑:为了澄清,这是条件语法,例如"a“= "a”

票数 6
EN

Stack Overflow用户

发布于 2008-11-19 10:50:51

另一个答案已经提到,它与test相同。在bash上,它也是一个内置组件,因此您可以通过help内置组件(help test)获得有关它的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/300472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档