如何比较包含尖括号'<'的字符串?在bash?

时间:2012-08-29 17:13:51

标签: bash

以下bash脚本给我带来了问题:

#!/bin/bash

if [[ $VAR -eq "<EMPTY>" ]]; then echo "Hello World!"; fi

Bash失败了,抱怨道:

line 3: [[: <EMPTY>: syntax error: operand expected (error token is "<EMPTY>")

如何测试VAR中包含的字符串是否等同于字符串"<EMPTY>"

2 个答案:

答案 0 :(得分:4)

您使用的操作符错误。 ==用于字符串,-eq用于数字。

#!/bin/bash

if [[ $VAR == "<EMPTY>" ]]; then echo "Hello World!"; fi

答案 1 :(得分:2)

[[ ... ]]内,-eq具有不同的含义:它用于比较整数。但是,您可以使用(( ... ))将integeres与普通运算符进行比较。对字符串使用以下内容:

[[ $VAR == "<EMPTY>" ]]