我尝试了以下内容:
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的结果也不同。任何帮助表示赞赏!
答案 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