2012-02-27 18 views
0

スクリプトに何が問題なのですか?私はファイルが指定された量よりも大きいかどうかを調べる関数を呼び出そうとしています。そうであれば、私は2番目のファイルを削除したいと思います。指定された金額を超えていない場合は、プログラムを終了します。代わりに、私はこのエラーメッセージを受け取ります: "予期しないトークン` FILE "の近くで構文エラー" 誰かが助けを得ることができますどこに助けや指示をしてくれますか?ありがとう。私はBashシェルを持っています。あなたは=の前後にスペースを削除する必要がシェルスクリプトで関数を呼び出そうとしています

function e{ 
FILE = $1 
FILESIZE=$(stat -c%s "$FILE") 
if [ "$FILESIZE" -gt 2048 ]; then 
    echo "File $1 exists" 
    `rm $2` 
else 
    echo "File $1 does not exist" 
    exit 
fi 
} 

e AD4_1hit.paired_mult.bam AD4_1hit.halfmapping_transloc.bam 
+0

FILESIZE <= 2048の場合、なぜファイルが存在しないとしますか?それは確かにユーザーを混乱させるでしょう。 –

+0

@WilliamPursell彼は毎日の読者でなければなりません。 – jordanm

+0

は完全に動作する 'e'と' {' –

答えて

2

...

FILE=$1 

ところで、あなたはあなたのrmコマンドの周りにコマンド置換 `...`構文は必要ありません。

e() { 
    FILE=$1 
    FILESIZE=$(stat -c%s "$FILE") 
    if [ "$FILESIZE" -gt 2048 ]; then 
    echo "File $1 exists" 
    rm $2 
    else 
    echo "File $1 does not exist" 
    exit 
    fi 
} 
+0

の間にスペースが必要です。ありがとうございました。 – user1234579

関連する問題