0

私は次のことを試しました:

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 シェルでは結果が異なります。どんな助けでも大歓迎です!

4

1 に答える 1

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
于 2013-10-15T19:09:21.383 に答える