使用bash脚本循环遍历文件

时间:2018-02-27 17:13:12

标签: bash loops type-conversion kml

我有js script将kml位置历史文件转换为csv。我写了一个bash脚本来遍历目录中的所有文件。当我从命令行./index.js filename.kml > filename.csv

执行它时,脚本可以工作

但是当我执行应该遍历所有文件的bash文件时没有任何反应。

我知道这可能是一个简单的错误,但我无法发现它。

#!/bin/bash
# file: foo.sh
for f in *.kml; do
  test -e "${f%.kml}" && continue
  ./index.js "$f" > "-fcsv"
done

1 个答案:

答案 0 :(得分:1)

只需删除"&&继续",如果我没有错,你用"继续"跳过当前的迭代。关键字,这就是为什么没有发生的原因

修改

另外,你不应该测试文件是否存在,for循环足以确保" f"将是一个有效的.kml文件。无论如何,如果你仍然想要这样做,你必须这样做:

#!/bin/bash
# file: foo.sh
for f in *.kml; do
  if [ -e "$f" ]; then
  ./index.js "$f" > "$f.csv"
  fi;
done