2014-01-23 149 views
0

我从昨天开始面临一个问题,试图在互联网上搜索如何解决它......没有结果。Bash没有返回这样的文件或目录

它就在那里。这是我的计划:

OTHERDIR="/tech/gtr/scripts/osm/scan-configs" 
filename="IDF-952584-SW1-126.110.84.253" 
estdifferent=true; 
if $estdifferent ; then 
    x=0; 
    for fic in `find $OTHERDIR/liste/ -type f -name $filename*` ; do 
    { 
    echo $fic 
    if [[$fic == *bak*]] 
    then 
      filename_tab[x]=$fic 
      ((x++)) 
    fi 
    } 

我要检查,如果$ FIC包含*李明博*末

但调试告诉我这个当它到达“如果”指令:

'[[/tech/gtr/scripts/osm/scan-configs/liste/IDF-952584-SW1-126.110.84.253_bak1' == '*bak*]]' 

comparatif.sh: line 29: [[/tech/gtr/scripts/osm/scan-configs/liste/IDF-952584-SW1-126.110.84.253_bak1: No such file or directory 

为什么它告诉我“没有这样的文件或目录”?我正在比较一个var和一个正则表达式。 (第29行是IF $ FIC == *李明博*指令)

回答

2

所需要的比较内部空间:

if [[ $fic == *bak* ]] 
    ^   ^

感谢它,而不是

if [[$fic == *bak*]] 
+0

。我有这个代码的另一个问题。 如果我在循环下添加echo“somethin” 程序正在为所有代码运行“for”循环,甚至是回声。我的语法错了吗? –

+0

'for'循环从'do'执行到'done',所以不需要'{',只使用该语法。如果您需要进一步解释,请使用当前代码更新您的问题。 – fedorqui

+1

是的,我读了整个代码,我有一个“完成”的标记没用。谢谢 –

相关问题