在shell脚本中条件匹配时从数组中删除元素

时间:2016-04-07 12:19:27

标签: arrays shell

我在shell脚本中迭代数组,当条件匹配时,即如果找到'b'想要从数组中删除该元素。我没有使用索引位置来迭代。我的数组有值(a b c)

我的代码是

for h in $Arr
do 
    echo -e "Value of current element $h.\n"

    if [ $h == "b" ]
    then
        echo -e "Delete it\n"

    else
        echo -e "Stay here\n"
    fi
done

当条件匹配时如何删除'b',这样当我打印我的数组时它应该打印(a c)??

1 个答案:

答案 0 :(得分:0)

您可以使用可接受的值构建临时数组Brr,然后为Arr指定其值吗?

Arr=" a b c"
Brr=""
for h in $Arr
do
  echo -e "Value of current element $h.\n"
  if [ $h == "b" ]
  then
    echo -e "Delete it\n"
    #do not add it to Brr
  else
    echo -e "Stay here\n"
    # add it to Brr the temp array
    Brr="${Brr} $h"
  fi
done
Arr="${Brr}"
echo $Arr