簡體   English   中英

使用bash腳本循環遍歷文件

[英]loop over files with bash script

我有一個js腳本 ,可將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

只需刪除“ && Continue”,如果我沒有記錯的話,您將使用“ continue”關鍵字跳過當前迭代,這就是為什么什么也沒發生的原因

編輯

另外,您不應該測試文件是否存在,for循環足以確保“ f”將是有效的.kml文件。 無論如何,如果您仍然想要這樣做,則必須按照以下步驟進行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM