2012-02-27 77 views
0

我的脚本有什么问题?我试图调用一个函数来查看文件是否大于指定的数量。如果是,我想删除第二个文件。如果它不大于指定数量,则比我希望程序退出。相反,我得到这个错误消息: “语法错误附近的意外令牌`文件'” 有人可以请帮助或指示我在哪里我可以得到一些帮助?谢谢。我有一个Bash shell。试图在shell脚本中调用函数

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,为什么你会认为该文件不存在?这肯定会混淆用户。 – 2012-02-27 13:16:34

+0

@WilliamPursell他必须是dailywtf读者。 – jordanm 2012-02-27 14:46:11

+0

需要在'e'和'{' – 2012-02-27 15:59:05

回答

2

你需要把空格去掉了=周围...

FILE=$1 

BTW,你不需要命令替换`...`的语法在你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 2012-02-27 00:59:30