2016-06-16 13 views
0

私は25個のファイルを持っていると私は同じ設定でそれらを処理したいが、次のスクリプトのために、私は2つのエラー受け取るELKIを実行している:それは、私はbashの持つ多くの経験を持っていない自動的

 

    **Stopping execution because of configuration errors. 
    optics.sh: line 9: -algorithm: command not found 
    optics.sh: line 14: -optics.minpts: command not found** 

 

    #!/bin/bash 
    for file in ~/ELKI/locationData/csv/*.csv; do 
     name=${file##*/}  
     java -jar ~/ELKI/elki.jar KDDCLIApplication \ 
     -dbc.in "$file" \ 
     -db.index tree.spatial.rstarvariants.rstar.RStarTreeFactory \ 
     -index.pagefile MemoryPageFileFactory -pagefile.pagesize 512 \ 
     -spatial.bulkstrategy SortTileRecursiveBulkSplit \ 
     -algorithm clustering.optics.OPTICSXi \ 
     -opticsxi.xi 0.05 \ 
     -algorithm.distancefunction geo.LatLngDistanceFunction \ 
     -geo.model SphericalHaversineEarthModel \ 
     -optics.epsilon 100.0 \ 
     -optics.minpts 200 \ 
     -resulthandler ResultWriter -out.gzip \ 
     -out ~/ELKI/locationData/output/${name%.*} 
    done 

を私のbashスクリプトにエラーがあるかもしれません。

+1

コピーhttp://www.shellcheck.net/にスクリプトを貼り付け、あなたがそれが問題を解決し、 '\\'ラインで8と13 – Inian

+0

感謝の後にスペースを持っているようです。 – user1124825

+0

お手伝いします!上記のサイトを使用して、スクリプトの構文の問題を確認してください。 – Inian

答えて

1

ある行の改行\の後に空白があるようです。バックスラッシュの後にスペースがある場合、改行ではなくエスケープが適用され、コマンドは次の行で続行されません。

# There are spaces after the backslash: 
$ echo hello \ 
hello 
$ world 
bash: world: command not found 

# No spaces after the backslash: 
$ echo hello \ 
> world 
hello world