2014-10-06 85 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