0

次の 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>"ですか?

4

2 に答える 2

4

間違った演算子を使用しています。==は文字列用、-eqは数値用です。

#!/bin/bash

if [[ $VAR == "<EMPTY>" ]]; then echo "Hello World!"; fi
于 2012-08-29T17:17:47.863 に答える
2

内部[[ ... ]]の ,-eqには別の意味があります。整数の比較に使用されます。(( ... ))ただし、整数を通常の演算子と比較するために使用できます。文字列には次を使用します。

[[ $VAR == "<EMPTY>" ]]
于 2012-08-29T17:17:20.893 に答える