尝试查找列表中条目的索引

尝试查找列表中条目的索引

我试图使用这个简单的方法查找列表条目的索引:

#!/bin/sh

partList="500 1000 2000 4000"
a=( $partList )
echo ${a["500"]}

这返回Syntax error: "(" unexpected.如果我尝试,也会出现同样的错误echo ${a[500]}。我希望0如果使用的话它会返回500

我只是在寻找一种快速而肮脏的方法来判断何时循环列表,如下所示:

 for j in $partList; do
   if [ $j is the first entry in the list $partList ]; then
     stuff happens..
   done
 done

我是否使用了该列表的第一个元素,如果是,则执行一些逻辑。

我想我可以使用列表的索引轻松地做到这一点。但这似乎很难#!/bin/sh

有什么建议么?

答案1

你颠倒了查找过程—— array[index] 返回一些东西。 array[array_element] 不会给你索引 - 你需要一个查找表(更好的是哈希映射)。

但对于你正在做的事情,你实际上只是在循环索引!而不是j in $partList仅仅循环j in $(seq ${#partlist[@]})并使用索引来获取元素。

最后......甚至不需要,如果你真的只是使用第一个元素,为什么不只是

j=${partList[0]}
stuff happens..

相关内容