2012-02-23 44 views
5

Tôi tự hỏi tại sao tập lệnh nhỏ bé dưới đây hiện đang hoạt động. Tôi đã tạo dfFile trong thư mục/data nhưng kịch bản không in các biểu thức trong câu lệnh if.Kiểm tra xem tệp có tồn tại trong 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

nếu [[-e $ {DATAFILE}]] mà giải quyết được vấn đề. – mibzer

Trả lời

19

Đó nên đọc

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

Chỉ cần thêm rằng khi sử dụng dấu ngoặc kép, các biến mở rộng không bị tách từ từ/trường phân tách (vì vậy có thể tránh được các dấu ngoặc kép). Điều đó, tất nhiên, không phải là trường hợp khi sử dụng '[...]' xây dựng. –

Các vấn đề liên quan