【小故事】Linux和Mac上有一个神秘的二进制文件叫/bin/[

概述

Linux 和 Mac 有一个名为/bin/[ 的神秘二进制文件。(* 在 Windows 上,WSL 当然在 Cygwin 和 GitBash 中可用)

$ which [
/usr/bin/[
$ file $(which [)
/usr/bin/[: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=e839984e966cdfd5f1bfde6ecda802397d4a4c1f, stripped

这到底是什么...我google的时候没找到太多信息,所以我点了man命令看了一下。

结论

它是关于在 shell 脚本的 if 语句条件中使用的[]。

考虑?

我从没想过if [ 条件 ]; then 的[ 是一个命令。 . .这是测试命令的缩写,所以如果你问我,这是一个命令。[ 条件 ] 似乎具有以下属性。

条件为真⇒ $?=0 条件为假⇒$?=1

这意味着 if 在 bash 等中。

if $?=0となるコマンド ⇒ 进程被执行 if $?!=0となるコマンド⇒进程未执行

你有没有性格我试了一会儿。

$ cat test.txt
hello
$ if grep 'hello' test.txt >/dev/null; then echo '真'; fi
真
$ if grep 'hoge' test.txt >/dev/null; then echo '真'; fi
# 何も出力されなかった

看起来很合适。

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626154.html

19人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册