我有一个简单的问题,但找不到任何答案。 if条件有两个开关用于检查文件,-e和-f。这两者有什么区别?if -e和if -f之间的区别
21
A
回答
34
参见:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
我认为这些都不是“如果开关”,而“测试开关”(因为你必须使用它们的内部括号[]
但不同的是:
如果FILE存在[ -e FILE ]
真。
这将返回真正两个/etc/hosts
和/dev/null
。
[ -f FILE ]
如果FILE存在且为常规文件,则为真。 这将返回true for /etc/hosts
和false for /dev/null
(因为它不是常规文件)。
17
$ man bash
-e file
True if file exists.
-f file
True if file exists and is a regular file.
一个普通文件的东西,不是目录/符号链接/插座/装置等
3
-e
检查任何类型的文件系统对象的; -f
只有检查常规文件。
1
if语句实际上使用程序'test'进行测试。你可以写if语句两种方式:
if [ -e filename ];
或
if test -e filename;
如果你知道这一点,你可以很容易地检查“测试”手册页,找出不同的测试的含义:
man test
相关问题
- 1. sed -e和sed之间的区别-f
- 2. if($ a)和if($ a == 1)之间的区别是什么?
- 3. if(!!变量)和if(变量)之间的区别?
- 4. if(args.Length <1)和if(args.Length == 0 || args == null)之间的区别
- 5. 在Perl中,“if defined $ count”和“if $ count”之间有什么区别?
- 6. if(intVar)和if(intVar!= 0)之间有区别吗?
- 7. cpp和gcc之间的区别-E
- 8. 区别:if((typeof OA!='undefined')&& OA)和if(OA)
- 9. 在Perl中,if(%hash)和if(定义的%hash)之间有什么区别?
- 10. 预处理器指令之间的区别#if和#ifdef
- 11. SAS:IF-THEN和IF-THEN-DO之间的区别?
- 12. PHP if/else返回和回显之间的区别?
- 13. 在使用if,else if,else if,...和using switch(){case A:... case B:...}之间,C和C++有什么区别吗?
- 14. if,else和else之间有什么区别?
- 15. 请告诉我和SED -E之间的区别的sed -e
- 16. Scala中f(a,b)和f(a)(b)之间的区别
- 17. “?extends E”和“T extends E”之间有什么区别?
- 18. #If ... then ...#else之间的区别如果... then..else在VBA
- 19. “if”语句与最后的“then”之间有什么区别?
- 20. 预处理器指令#if与正常之间的区别
- 21. Python中的if bool(x)`和if x`有什么区别吗?
- 22. C中“ifndef”和“if!defined”的区别?
- 23. 这两个'if'和'if-else'语句有什么区别?
- 24. if(varName)和if(varName!= NULL)有什么区别?
- 25. `if var`和`if let` in swift有什么区别?
- 26. if(!Variable)和if(isset($ variable))有什么区别?
- 27. if和elseif有什么区别?
- 28. #ifdef __IPHONE_3.2和#if __IPHONE_3.2有什么区别?
- 29. Switch和IF有什么区别?
- 30. Java中的multiway和嵌套if语句之间有什么区别?
@jww这是一个关于bash脚本中的if块的问题 - 它可能不是一种编程语言,但我肯定不会把它叫做主题。 – Ahatius 2016-06-23 13:20:12
够公平的。你有这样的标签;所以你把它转向编程,而不是“如何使用这个命令”。缩回。 – jww 2016-06-23 15:57:34