2013-10-15 70 views
0

我試過如下:如何編寫一個返回字符串中單詞索引的bash函數?

wordindex() { 
alias myStr=$1 
myArr=($myStr) 
cnt=0 
for x in "${myArr[@]}" 
do 
     ((++cnt)) 
     if [[ $x == "$2" ]] 
     then 
       break 
     fi 
done 
echo $cnt 
} 

但行爲似乎非常難以預測。 mac端子與linux shell的結果也不同。任何幫助表示讚賞!

+2

你正在做同樣的錯誤作爲你的[最後一個問題(http://stackoverflow.com/q/19386953/7552) –

+0

你的意思是別名?我認爲它也有效? –

+0

那麼我的錯誤在哪裏呢,Glenn是bash專家? –

回答

1

我沒有看到任何錯誤。確保你是而不是使用/ bin/sh來運行你的腳本 - 你在那裏有特定於bash的東西。

我會寫這樣的:

wordindex() { 
    words=(${!1}) 
    for ((i=0; i < ${#words[@]}; i++)); do 
     if [[ ${words[i]} == $2 ]]; then 
      echo $i 
      break 
     fi 
    done 
} 
str="hello world foo bar" 
wordindex str foo 
2 
+0

thx指出存在/ bin/sh;我不知道這樣的連接:x –

相關問題