【问题标题】:What is the "[" binary file in my "/bin" folder for? (MacOS Big Sur M1 chip) [closed]我的“/bin”文件夹中的“[”二进制文件有什么用? (MacOS Big Sur M1 芯片)[关闭]
【发布时间】:2021-04-07 21:10:41
【问题描述】:

我是操作系统的新手,并试图通过探索我的新计算机来赶上。

今天早上,我刚刚在浏览bin文件,看到一个奇怪的文件夹,叫“[”。这是什么?

我还没有在“/bin”文件夹中创建或安装任何东西。所以它不是我创造的。我的“/bin”文件夹中的“[”二进制文件是干什么用的?

【问题讨论】:

  • 要找出答案,您应该尝试man [。 (不认识的人也可以试试man man
  • 谢谢!它的名称是“test, [ -- 条件评估实用程序” 它的描述是“测试实用程序评估表达式,如果评估为真,则返回零(真)退出状态;否则返回 1(假)。如果有没有表达式,测试也返回 1(假)。”它似乎是内置的。

标签: macos operating-system


【解决方案1】:

[ 是测试程序。正如手册页所暗示的那样,它的使用方式类似于

[ condition ]

并计算为零(为真)或非零值(为假)。对于 macOS 上的 zsh,手册页说 false 由 1 表示。请注意,方括号后面的空格很重要,因为该空格向 shell 表明您要运行 [ 程序。

尽管存在该程序,但该可执行文件可能并不经常使用。看来您正在使用 zsh,它是 macOS 上的默认 shell。在 zsh 中,[ 是一个优先于/bin/[ 的内置函数。这可以通过

来验证
% which -a [
[: shell built-in command
/bin/[

可以通过man zshbuiltins找到内置的手册页。

如果你想显式使用/bin中的程序,那么你的命令应该是这样的

/bin/[ condition ]

示例

假设您正在运行一个要检查条件的 shell 脚本。例如,您要检查文件是否存在。 [ 经常用于此目的。这是一个例子

if [ -f myFile.txt ]; then
   date > myFile.txt
else
   echo "File was created on $(cat myFile.txt)."
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-29
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2021-09-01
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多