[
我的 Mac Powerbook 上的 /bin 文件中有一个名为 - 左括号 - 的意外文件。我负责卡特琳娜。当我查看cat
该文件时,它看起来像苹果证书颁发机构的东西。大部分内容不可读,但其中有文字,例如
Apple Certification Authority
和
PROGRAM:test PROJECT:shell_cmds-207.40.1 ??????i@[]missing ]!unexpected operator%s: %s%sclosing paren expectedargument expected%s: bad number%s: out of range)
知道这可能是什么吗?对我来说似乎很可疑——就像其中基于错误消息的一些源代码。但不想直接删除,以防它是苹果需要的文件。
答案1
左方括号[
是一个标准可执行文件,相当于test
,它在编写 shell 脚本时提供语法糖(即“看起来不错”)
fruit="banana"
if [ banana = "$fruit" ] # "[" really is an executable
then
echo "Yum, yum"
fi
或者
fruit="banana"
if test pear = "$fruit"
then
echo "Yum, yum"
fi
这些是直接等价的。
实际上,您的 shell 可能会直接实现[
和test
,因此当您调用它们时,您的 shell 会执行命令,而不是运行单独的进程来执行此操作。同样,对于用户来说,没有明显的区别。