2017-03-22 101 views
0

我想寫一個bash腳本,導入所有用戶,併爲每個帳戶執行一些操作。bash腳本循環與if-else語句

a="some account" 
b="some account" 
#... so on 

USERS = #get imported 

for ACCOUNT in $USERS; do 
     if ["$ACCOUNT" == "$a"] || ["$ACCOUNT" == "$b"] || ["$ACCOUNT" == "$c"] || ["$ACCOUNT" == "$d"]; then 
       echo "Skipping $ACCOUNT" 
     else 
       echo "this" 
       echo "this $ACCOUNT" 
     fi 
done 

但似乎有問題。對於每一個帳戶,我得到以下幾點:

[THISIS @ anaccount:找不到

我試圖擺脫單一的支架,並把整個if語句成一個雙支架,但結果在同一個錯誤。

我也刪除了每個變量調用的雙引號,但似乎沒有問題。

有人可以提醒嗎?

+1

請看看:http://www.shellcheck.net/ – Cyrus

回答

1

你只是缺少幾個空格...

#!/bin/bash 
a="ACC_A" 
b="ACC_B" 
c="ACC_C" 
d="ACC_D" 

USERS="ACC_A ACC_B ACC_C ACC_X ACC_Y ACC_Z" 

for ACCOUNT in $USERS; do 
     if [ "$ACCOUNT" = "$a" ] || [ "$ACCOUNT" = "$b" ] || [ "$ACCOUNT" = "$c" ] || [ "$ACCOUNT" = "$d" ]; then 
       echo "Skipping $ACCOUNT" 
    else 
       echo "this $ACCOUNT" 
    fi 
done 

和快速測試:

$ bash accounts.sh 
Skipping ACC_A 
Skipping ACC_B 
Skipping ACC_C 
this ACC_X 
this ACC_Y 
this ACC_Z 
+0

此,並且使用'bash'而不是'sh'使腳本運行!謝謝! – viviboox3