如何编写一个返回字符串中单词索引的bash函数?

时间:2013-10-15 17:43:45

标签: 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的结果也不同。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分: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