shell脚本中的[]
时间: 2023-11-09 11:07:05 浏览: 40
在 shell 脚本中,中括号 `[]` 是一种测试命令的语法结构,用于测试条件是否成立。它可以用于字符串、数字、文件等类型的比较和判断。
以下是一些常见的 `[ ]` 测试命令:
1. 字符串比较:
- `if [ $str1 = $str2 ]`:判断两个字符串是否相等。
- `if [ $str1 != $str2 ]`:判断两个字符串是否不相等。
- `if [ -z $str ]`:判断字符串是否为空。
- `if [ -n $str ]`:判断字符串是否非空。
2. 数字比较:
- `if [ $num1 -eq $num2 ]`:判断两个数字是否相等。
- `if [ $num1 -ne $num2 ]`:判断两个数字是否不相等。
- `if [ $num1 -gt $num2 ]`:判断 num1 是否大于 num2。
- `if [ $num1 -lt $num2 ]`:判断 num1 是否小于 num2。
- `if [ $num1 -ge $num2 ]`:判断 num1 是否大于或等于 num2。
- `if [ $num1 -le $num2 ]`:判断 num1 是否小于或等于 num2。
3. 文件比较:
- `if [ -e $file ]`:判断文件是否存在。
- `if [ -r $file ]`:判断文件是否可读。
- `if [ -w $file ]`:判断文件是否可写。
- `if [ -x $file ]`:判断文件是否可执行。
需要注意的是,在使用 `[ ]` 进行字符串比较的时候,一定要将变量用引号引起来,避免空格等特殊字符造成的问题,例如:`if [ "$str1" = "$str2" ]`。