2013-10-15 40 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 –

相关问题