2013-01-22 69 views
0

我有bash的變量分割字符串和工藝的foreach匹配它在bash

USE_DOTNET="a b c"

我需要去foreachUSE_DOTNET,並且有一定case(開關),每個模式。

foreach x in USE_DOTNET 
switch(x) 
case a -> do something 
case b -> ... 

在僞代碼,但我不知道如何實現它在bash?

回答

2
#!/bin/bash 

USE_DOTNET="a b c" 

for x in ${USE_DOTNET} ; do 
    case ${x} in 
     a) echo "found x="$x ;; 
     b) echo "found b" 
     c) echo "FOUND c" 
     *) echo "unexpected value found for x=$x" 1>&2 
    esac 
done 

OR,每@ jordanm的評論,你可以嘗試

USE_DOTNET=(a b c) 
for x in "${USE_DOTNET[@]}" ;do ... 

IHTH

(FWIW,你的P碼看起來接近csh的語法)

+0

TNX您發表評論和編輯!祝你們好運。 – shellter

+1

@jordanm,根據第一個例子,完全有效地利用shell的分詞。 –