2016-04-29 65 views
0

bash腳本新手,我需要檢查組中的第一個單詞是否等於用戶中的第二個單詞。Bash腳本如果-eq

Group=`echo $rules | egrep -v 'Test'` 
Users=`echo $rules | grep -i 'Test' | awk '{print substr($0, index($0,$2))}'` 

if [ '$Group' -eq '$Users' ]; 
then 
echo $Group 
echo $Users 

else 
: 
fi 

我可以使用類似這樣的東西嗎?這可能嗎?

if [ '$Group $1' -eq '$Users $2' ]; 

if [ '^$Group' -eq '^$Users' ]; 
+1

你能提供一些樣品輸入嗎?另外,我猜你需要雙引號才能擴展值 - > if if [「$ Group」-eq「$ Users」]''。 – fedorqui

回答

2

操作-eq用於整數比較。 如果要比較字符串必須使用=這樣的:

if [ "$a" = "$b" ] 

這相當於

if [ "$a" == "$b" ] 

,但不等同於(注意空格)

if [ "$a"="$b" ] 

然而,如果你想在if語句中使用一個正則表達式(你使用^不是一個glob模式通配符)here

這就是說你應該在if語句之前進行分割,並將用戶和組放在兩個數組中。