![为什么我的 /usr/bin 目录中有一个名为](https://linux22.com/image/63840/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20%2Fusr%2Fbin%20%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BA%20.png)
最近从另一个操作系统回到 Linux,我注意到一个名为 [ 的文件,这对我来说似乎很奇怪。它是做什么用的?
$ ls -l /usr/bin | head -2
-rwxr-xr-x 1 root root 39552 Nov 3 14:44 [
我使用的是 Ubuntu 15.04
答案1
命令[
是命令的另一个“名称” test
,因此if
构造的语法看起来更好。这两个是等价的:
if test "$x" -eq 0
if [ "$x" -eq 0 ]
最后的]
只是语法糖。这种等同性大多只是一个历史特征。
请注意,较新的测试构造[[ ... ]]
(非标准)是 shell 语法的一部分,而不是命令。
答案2
[
是一个命令,以确保您可以使用type [
它说这是一个 shell 内置命令,或者如果你使用的话,你会看到目录下type -a [
还有另一个命令。[
/usr/bin/
你可以看到它的help [
命令帮助。
用法:这是if
bash 的另一种形式,例如:
[ "Hello" == "Helo" ] ; echo $?