测试值包含在另一个数组

时间:2018-03-20 09:49:36

标签: arrays bash function shell

情况:我有2个名单。

  1.   

    list_all_process.ini
       列出我的所有bash脚本

  2.   

    exclude_proccess.ini
      列出我所有的“排除”bash脚本

  3. 这些包含

      

    list_all_process.ini

    script-1.0.sh
    script-2.0.sh
    script-3.0.sh
    script-4.0.sh
    

    -

      

    exclude_proccess.ini

    script-3.0.sh
    

    我想拥有什么:

    如果该值与exclude proccess不对应 - >执行脚本。如果匹配 - >没有

    我的代码:

    except_proccess(){
        readarray a -t < ${INC}/full_proccess_list.ini
        readarray b -t < ${INC}/exclude_list.ini
    
        for ACCEPT in ${a[@]} ; do
            for DENNY in ${b[@]} ; do
            if [[ $ACCEPT == $DENNY ]]; then
                continue;
            else
                bash ${INC}/${ACCEPT}
            fi  
            done
        done 
    

    我的问题:

    在exclude_list中启用误报和ID包含...

1 个答案:

答案 0 :(得分:0)

我想知道你为什么这么复杂地做这件事。试试这个:

for p in $(cat list_all_process.ini) ; do
    grep -q "$p" exclude_proccess.ini || echo "execute $p"
done