如何在shell脚本中搜索元素

时间:2016-09-14 17:40:23

标签: arrays bash shell search sed

我有一个数组

宣布-a fruits =(" apple"" banana"" guava"" cherry"" mango"& #34;荔枝&#34)

我需要编写一个shell脚本,它可以采用多个参数(以逗号分隔)。它应该检查每个参数对阵数 - 如果参数不匹配它应该退出说明参数不在数组中。它应该返回所有无效的参数

例如/ dummy.sh胡萝卜,土豆,卷心菜

o / p:在阵列中找不到胡萝卜,土豆,卷心菜

例如2 ./dummy.sh banana,芒果 o / p banana,mango在列表中找到

1 个答案:

答案 0 :(得分:1)

#!/usr/bin/bash    
declare -a fruits=("apple" "banana" "guava" "cherry" "mango" "litchi")

IFS=, read -ra args <<< "$1"
for arg in "${args[@]}"
do
   #echo "Searching for $arg"
   found=0
   for fruit in "${fruits[@]}"
   do
      if [[ $fruit == $arg ]]; then found=1; break; fi
   done
   if [[ $found == 0 ]]; then echo "$arg is not found"; break; fi
done