2017-02-11 6 views
1

私はSRAtoolsのfastq-dumpを使って.fastq形式に変換したい.sraファイルをたくさん持っています。それらはすべて同じディレクトリに格納されていますので、それらをすべて循環させ、fastq-dump関数をさまざまな方法で適用するためにbashスクリプトを実行したいと思います。しかし、私は構文の権利をかなり得ることはできません。Bashでファイルを繰り返し実行するコマンド

#!/bin/bash 
FILES=/home/sam/Documents/Reads 
for file in FILES 
do 
[ fastq-dump "$file" ] 
done 

これは、 '単項演算子が期待されます'をスローします。私はかなり単純だと確信していますが、私はBashスクリプティングの初心者で、シンタックスの仕組みがはっきりしていません。

誰でも正しい構文についてのヒントを教えてください。

+1

ブラケット '[]'はテスト用のシェル構文であり、戻り値(trueの場合は0、falseの場合はゼロ以外)は論理値として使用されることを意図しています。 'if&then/else'ブロック、ループ終了条件、' && 'と' || '論理演算子を使った条件付き実行を構築するために使われます。コマンドを実行したいだけの場合は、角カッコで囲まないでください。 – Fred

答えて

3

大括弧を削除します。 FILES"$FILES"/*に変更すると、変数の値が展開され、そのディレクトリ内のファイルが一致します。

#!/bin/bash 
FILES=/home/sam/Documents/Reads 
for file in "$FILES"/* 
do 
    fastq-dump "$file" 
done 

実際にループは実際には必要ありません。 fastq-dumpは複数のファイル名をとることができます。

+0

Ah OK - 最初のやり方は、とにかくループをbashで使う方法を学ぶほうがいいと思う。ありがとう! – sahwahn

関連する問題