我试图使用这个简单的方法查找列表条目的索引:
#!/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..