在if语句中-e是什么意思?

时间:2016-05-04 18:04:41

标签: perl

我在一些Perl代码中找到了以下内容:

if (! -e $options{"inPath"}){
       $logger->fatal("Directory \'$options{\"inPath\"}\' does not exist.\n");
} 

-e声明中的if有什么作用?

2 个答案:

答案 0 :(得分:3)

请参阅Perl file tests文档网站中的online perl。如果文件-e '/foo'存在,/foo将返回true。

如果您的系统中安装了perldoc,也可以从命令行访问它。

perldoc -f -X

答案 1 :(得分:3)

perldoc unary运算符-e检查文件是否存在。

Perldoc一元文件测试运算符列表:

    -r  File is readable by effective uid/gid.
    -w  File is writable by effective uid/gid.
    -x  File is executable by effective uid/gid.
    -o  File is owned by effective uid.
    -R  File is readable by real uid/gid.
    -W  File is writable by real uid/gid.
    -X  File is executable by real uid/gid.
    -O  File is owned by real uid.
    -e  File exists.
    -z  File has zero size (is empty).
    -s  File has nonzero size (returns size in bytes).
    -f  File is a plain file.
    -d  File is a directory.
    -l  File is a symbolic link (false if symlinks aren't
        supported by the file system).
    -p  File is a named pipe (FIFO), or Filehandle is a pipe.
    -S  File is a socket.
    -b  File is a block special file.
    -c  File is a character special file.
    -t  Filehandle is opened to a tty.
    -u  File has setuid bit set.
    -g  File has setgid bit set.
    -k  File has sticky bit set.
    -T  File is an ASCII or UTF-8 text file (heuristic guess).
    -B  File is a "binary" file (opposite of -T).
    -M  Script start time minus file modification time, in days.
    -A  Same for access time.
    -C  Same for inode change time (Unix, may differ for other
    platforms)