确定数组中是否存在值

  • 本文关键字:存在 是否 数组 bash
  • 更新时间 :
  • 英文 :


非常感谢您的帮助!!!

我有以下代码:

base[0]='coordfinder'
base[1]='editor_and_options'
base[2]='global'
base[3]='gyro'
base[4]='movecamera'
base[5]='orientation'
base[6]='sa'
for d in $dest_include/*; do
    if [ $d == "${base[@]}" ]; then
        echo $plugin='y' >> vt_conf.sh
    else
        plugin=$(basename $d)
        echo $plugin'?'
        read $plugin
        echo $plugin=${!plugin} >> vt_conf.sh
    fi
done

它不起作用,但这是一个很好的起点。基本上,不起作用的是if循环。我只是因为我不知道该怎么做而弥补。

我想做以下操作:

循环浏览$ dest_include文件夹的内容。如果任何forlders($ d)与数组中的任何元素匹配一件事,否则要做其他事情。

谢谢!

通过内部循环迭代,如果找到匹配项,请设置标志。

base=( coordfinder editor_and_options global gyro movecamera orientation sa )
for d in "$dest_include/"*; do
  found_match=0
  for i in "${base[@]}"; do
    [[ $d = "$i" ]] && { found_match=1; break; }
  done
  if (( found_match )) ; then
    ...do one thing...
  else
    ...do the other...
  fi
done

您也可以打开检查:将整个数组用作空间分隔的字符串,并尝试匹配其中的whitespace删除的单词。

for d in "$dest_include"/* do
    if [[ " ${base[*]} " == *" $(basename "$d") "* ]]; then
        do something with matching directory
    else
        do another thiing
    fi
done

相关内容

  • 没有找到相关文章

最新更新