有人可以向我解释或指出一些文件,其中可以澄清“if () ...”和“if [] ...”之间的区别吗?
问问题
5564 次
2 回答
15
if
只需将普通的 shell 命令作为参数,并计算命令的退出代码。例如,你可以做
if grep pattern file; then ...; fi
()
在 bash 中执行子shell 中的内容,因此您基本上可以在子shell 中指定任何命令。
[]
在 bash 中是一个 shell 命令(技术上是[
命令),它根据特定的语法计算表达式。
因此,if (...)
用于测试命令的退出代码(在大多数情况下()
是多余的),而if [...]
用于使用test
.
于 2013-06-05T18:11:18.750 回答
6
该[
符号实际上是一个命令。它相当于test
命令。
例如
if test "$foo" = 'bar'; then ...
是相同的
if [ "$foo" = 'bar' ]; then ...
而在子shell中if (command)
执行command
。
于 2013-06-05T18:11:22.293 回答