2012-02-23 151 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