在bash中创建数组时出错

时间:2017-06-14 06:48:48

标签: bash

我有一些带有某些关键字的文件(一个是MAT1)。 对于这个关键词,我想读取与之对应的ID,将其与文件名一起放入数组中。 我尝试了以下(我对bash编程不是很熟悉):

Ptr<MSER> ms = MSER::create();

vector<Rect> bbox,filtered;
vector<vector<Point> > regions;
vector <int> vec;

ms->detectRegions(gray,regions,bbox);


cout<<bbox.size()<<"Befor Delete"<<endl;

for (int i = 0; i<bbox.size(); i++){
    for(int j = 0; j<bbox.size(); j++){

        if( (bbox[i].x > bbox[j].x) && (bbox[i].y > bbox[j].y) && ((bbox[i].x+bbox[i].width) < (bbox[j].x+bbox[j].width)) && ((bbox[i].y+bbox[i].height) < (bbox[j].y+bbox[j].height)) && (bbox[i].area() < bbox[j].area())){



            bbox.erase(bbox.begin() + i );

        }


    }
}

cout<<bbox.size()<<" After"<<endl;


for (int k = 0; k < bbox.size(); k++)
{
    rectangle(src,bbox[k], CV_RGB(0, 255, 0));
   //cout<<k<<endl;
}


imshow("mser", src);
imwrite("NoN.jpg",src);

用这个得到消息

make_mat_list.bsh:第21行:out [0]:找不到命令

make_mat_list.bsh:第21行:out [1]:找不到命令

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

bash对空白区域敏感,下面的行不能有空格。

out[$num] = "${array[index+1]} $file "

对于错误的原因,shell将该特定行视为第一个单词,即命令out[$num],即out[1]等等,其余部分作为参数{{1} }和=,这没有任何意义。删除空格并执行jsut

"${array[index+1]} $file "