以下bash腳本是給我的問題:如何比較在bash中包含尖括號'<'的字符串?
#!/bin/bash
if [[ $VAR -eq "<EMPTY>" ]]; then echo "Hello World!"; fi
擊失敗,抱怨:
line 3: [[: <EMPTY>: syntax error: operand expected (error token is "<EMPTY>")
如何測試是否包含在VAR
字符串等同於字符串"<EMPTY>"
?
以下bash腳本是給我的問題:如何比較在bash中包含尖括號'<'的字符串?
#!/bin/bash
if [[ $VAR -eq "<EMPTY>" ]]; then echo "Hello World!"; fi
擊失敗,抱怨:
line 3: [[: <EMPTY>: syntax error: operand expected (error token is "<EMPTY>")
如何測試是否包含在VAR
字符串等同於字符串"<EMPTY>"
?
您使用了錯誤的操作。 ==
用於字符串,-eq
用於數字。
#!/bin/bash
if [[ $VAR == "<EMPTY>" ]]; then echo "Hello World!"; fi
Inside [[ ... ]]
,-eq
具有不同的含義:它用於比較整數。不過,您可以使用((...))
來比較integeres與普通操作符。使用字符串如下:
[[ $VAR == "<EMPTY>" ]]
'-eq'在'[[...]]'內仍有意義。這意味着「如果arg1等於arg2,則返回true」,根據bash手冊頁。它的操作數必須是整數。 –
@Robᵩ更新,謝謝。 – choroba
在'[['中,您不必引用不存在的VAR。 – choroba
@choroba - 謝謝。修復。 –