我有一個簡單的問題,但找不到任何答案。 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