2014-10-06 126 views
1

在這個程序中我沒有使用-f這個語句。在這個聲明中使用這個-f是什麼?

if [ -f $file ] 

if但爲什麼我們使用-f這裏?

這裏是整個程序:

case $ch in 
    1) 
    echo -e "\n This is File Create Operation" 
    echo -e "\n Please Enter File Name:" 
    read file 

    if [ -f $file ] 
    then 
     echo -e "\n File already existing!!!" 
    else 

     touch $file 
     echo -e "\n File Created!!!" 
     echo -e "\n Created File can be Checked From Following Table" 
     ls -t|head -n 15 
    fi 
    ;; 
+3

'-f'檢查是否存在該文件(並且它是一個常規文件) – Cheery 2014-10-06 18:08:51

+0

@Cheery否,'-f'測試該文件是否是常規文件。 '-e'測試是否存在。 http://tldp.org/LDP/abs/html/fto.html – 2014-10-06 18:10:06

+2

@BaconBits ['-f'測試*文件的存在性和規律性](http://www.tldp.org /LDP/Bash-Beginners-Guide/html/sect_07_01.html)。 – admdrew 2014-10-06 18:11:11

回答

6

[通常既是一個別名test和殼內置。 [ something ]相當於test something

見在bash學習的bash內建的版本help [,並且man test,瞭解非內置二進制/bin/test

你會看到[ -f file ]如果文件存在是真實的,是一個普通的文件,否則爲false(即返回0只有file是一個普通文件)

+0

給downvoters,請告訴我爲什麼downvote?我想我回答這個問題? – 2014-10-06 18:28:44

+1

不關心downvoters。來自我的SO ... +1的高聲望巨魔數量正在增加。 ;)只要確定你的答案是正確的,它也回答了這個問題。 (現在還沒有完全--OP詢問'-f') – jm666 2014-10-06 18:33:26

+2

downvotes *可能是*,因爲你的原始答案對於關閉']'是不正確的。雖然糾正了,但大多數人不會在更新時發佈downvoted(你沒有得到關於此的通知),所以downvotes保持不變。我不認爲這些是「巨魔」,因爲@ jm666說,但當時有效* ... – Carpetsmoker 2014-10-06 18:43:55