在Shell脚本中,[]
和 {}
有不同的用途,它们分别用于条件测试和命令组合/代码块。
1. []
:条件测试
[]
通常用于测试条件。这是test
命令的简写形式,用于比较和测试变量或表达式的值。
例如:
if [ $variable -eq 10 ]; then
echo "Variable is 10"
fi
在上面的例子中,[ $variable -eq 10 ]
是一个条件测试,检查变量$variable
是否等于10。
注意:[
和 ]
之间以及 [
和 ]
与变量或表达式之间必须有空格。
2. {}
:命令组合/代码块
{}
用于将多个命令组合成一个代码块。这通常与循环(如for
和while
)或条件语句(如if
)一起使用。
例如:
for i in {1..5}; do
echo "Number: $i"
done
在上面的例子中,{1..5}
是一个序列扩展,它产生从1到5的数字序列。然后,for
循环迭代这个序列,并在每次迭代中执行echo
命令。
另一个例子是:
if [ $condition ]; then
{
command1
command2
}
else
command3
fi
在这个例子中,如果$condition
为真,那么command1
和command2
会作为一个代码块一起执行。
注意:在{}
内部的命令之间不需要分号来分隔,但在{}
外部的命令之间可能需要分号或换行符来分隔。
总之,[]
主要用于条件测试,而 {}
主要用于组合命令或创建代码块。