*中的F脚本

时间:2019-01-16 20:18:05

标签: bash cygwin sh

我在Server 2012 r2上使用Cygwin

我有一个脚本正在根据文件名的一部分(即日期)对文件进行排序。将它们分类到文件夹中

这是脚本。

#!/bin/bash

for f in * ; do
 if [[ $f == *_D????00_* ]] ;
  then
   if ! [[ -e ../2000/$f ]]
    echo "../2000/$f EXISTS"
 else
    echo "Copying $f --> ../2000/$f"
fi
done

我收到此错误:

$ ./sort.sh
./sort.sh: line 8: syntax error near unexpected token `else'
./sort.sh: line 8: ` else'

对Linux bash来说还算是新手,尤其是cygwin。

有想法吗?

-迈克

1 个答案:

答案 0 :(得分:1)

您一次正确地完成了then语句(以fi结尾)。但是随后您忘记为嵌套的if IE这样做了

#!/bin/bash
for f in * ; do
    if [[ $f == *_D????00_* ]]
    then
       if ! [[ -e ../2000/$f ]]
       then
            echo "../2000/$f EXISTS"
       else
            echo "Copying $f --> ../2000/$f"
       fi
    fi
done