我想从一个bash数组中删除随便一个一个关键字的首次亮相 。
ARRAY=(foo bar and any number of keywords)
keywords=(red, rednet, rd3.0)
我删除关键字是这样的: ARRAY=( ${ARRAY[@]/"$keyword"/} )
然后如果“红色”是第一个被发现的关键字,将剥离‘ 红 ’从两个关键字并返回为“foo酒吧净“而不是‘富酒吧红网’。
编辑:这是例子,希望这使得它更清晰。
for keyword in ${ARRAY[@]}; do
if [ "$keyword" = "red" ] || [ "$keyword" = "rd3.0" ] || [ "$keyword" = "rednet" ]; then
# HERE IS TROUBLE
ARRAY=( ${ARRAY[@]/"$keyword"/} )
echo "ARRAY is now ${ARRAY[@]}"
break
fi
done
这要是ARRAY=(red rednet rd3.0)
返回净rd3.0代替红网rd3.0
如果我使用未设置,: unset ${ARRAY["$keyword"]}
bash的抱怨,如果rd3.0是数组中: :syntax error: invalid arithmetic operator (error token is ".0")
什么是安全的方式来取消或从阵列中移除只是精确匹配?