linux - 可执行文件 `[` 有什么作用?

标签 linux bash

<分区>

我的问题:

  • 我的机器上有一个名为[ 的可执行文件。它有什么作用?

更多信息:

上周交的家庭作业中的一个问题是“哪些可执行程序的名称只有一个字符长,它们的作用是什么?”

我运行了命令:find $PATH{1,2,3,4,5,6,7} -executable -name "?"(我将 PATH 的每个部分保存到变量中命名为 PATH1、PATH2、PATH3 等)

部分输出是:

/usr/bin/X
/usr/bin/w
/usr/bin/[

我以前用过w,我知道它的作用。我不知道 X 做了什么,也没有手册页,所以我运行了命令。在输出中,它告诉我转到“http://wiki.x.org”,一切都很好。

但是没有[的手册页,我什至不知道如何运行[命令!

$ /usr/bin/[
/usr/bin/[: missing ']'

$ source /usr/bin/[
-bash: source: /usr/bin/[: cannot execute binary file

我交了作业,大大的“???”在我的 [ 条目旁边,但我仍然想知道它的作用。或者它甚至是一个实际的可执行文件。

最佳答案

[ 基本上是语法糖,是 test 的紧急备份版本,在 if 语句中看起来更好。在 bash 中,您几乎可以(而且可能应该)总是使用 [[ ]] 代替,它由解释器直接解析,不会产生新进程。您还应该通读 bash 手册页并理解进行数学计算的 (( ))

关于linux - 可执行文件 `[` 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592669/

相关文章:

python - 返回 Python 解释器的 bash 脚本可以替换 shebang 吗?

linux curl 重定向和授权

linux - 从在另一个脚本中运行的脚本中获取输出

linux - 使用 AWK 打印除第一列之外的所有列

linux - NFS rootfs 上的 Busybox SUID

linux - 如何在通过/bin/bash打开的shell中执行linux命令

linux - 使用 shell 脚本解析 json

c - `getlogin()` 是通过读取 `/var/run/utmp` 实现的吗?

c - 生成文件: Pass a target's dependency as an argument

python - 在 Snakemake 中使用 cutadapt 适配器文件输入