2012-02-23 226 views
5

我想知道为什么下面的小脚本正在工作。 我在/ data目录下创建了dfFile,但脚本不会在if语句中打印表达式。检查文件是否存在ksh

#!/bin/ksh 
DATAFILE="/data/dfFile" 
echo $DATAFILE 
#df -h>/data/dfFile 
    if [[ -e DATAFILE ]] 
    then 
    echo "sa" 
    echo $DATAFILE 
    df -h > $DATAFILE 
    fi 
+0

如果[[-e $ {} DATAFILE]是解决了这个问题。 – mibzer 2012-02-23 21:55:13

回答

19

这应该读

if [[ -e "$DATAFILE" ]] 
+5

只需添加一下,使用双括号时,扩展变量不受shell字/字段拆分(所以可以避免使用双引号)。当然,使用'[']'构造时不是这种情况。 – 2012-02-26 08:36:11