Tôi có một câu hỏi đơn giản, nhưng tôi không thể tìm thấy bất kỳ câu trả lời nào cho nó. Có 2 công tắc cho điều kiện nếu kiểm tra tập tin, -e và -f. Sự khác biệt giữa hai điều đó là gì?Sự khác biệt giữa if -e và if -f
Trả lời
Xem: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Tôi tin rằng những người không phải là "nếu công tắc", chứ không phải "kiểm tra công tắc" (bởi vì bạn phải sử dụng chúng trong [] dấu ngoặc
Nhưng sự khác biệt là:.
[ -e FILE ]
đúng nếu FILE tồn tại.
này sẽ trở thành sự thật cho cả /etc/hosts
và /dev/null
.
[ -f FILE ]
Đúng nếu FILE tồn tại và là tệp thông thường. Điều này sẽ trả về đúng cho /etc/hosts
và false cho /dev/null
(vì đây không phải là tệp thông thường).
$ man bash
-e file
True if file exists.
-f file
True if file exists and is a regular file.
Một tập tin thường xuyên là cái gì đó không phải là một thư mục/symlink/ổ cắm/thiết bị vv
-e
kiểm tra cho bất kỳ loại đối tượng hệ thống tập tin; -f
chỉ kiểm tra tệp thường xuyên.
Câu lệnh if thực sự sử dụng chương trình 'kiểm tra' cho các bài kiểm tra. Bạn có thể viết câu lệnh if hai cách:
if [ -e filename ];
hoặc
if test -e filename;
Nếu bạn biết điều này, bạn có thể dễ dàng kiểm tra man page của 'thử' để tìm hiểu ý nghĩa của các bài kiểm tra khác nhau:
man test
- 1. sự khác biệt giữa "ifndef" và "if! Defined" trong C?
- 2. Sự khác biệt giữa java 'assert' và 'if() {} else exit;'
- 3. Sự khác biệt giữa "if (foo) bar();" và "foo && bar();"
- 4. Sự khác biệt hiệu suất, nếu có, giữa if (! Foo) và if (foo == false) trong Java?
- 5. Có sự khác biệt nào trong C và C++ giữa việc sử dụng if, else if, else if, ... và sử dụng switch() {case A: ... case B: ...}?
- 6. Có sự khác biệt giữa "và" so với "và sau đó" trong câu lệnh IF
- 7. Tại sao sự khác biệt trong IL giữa IF và toán tử điều kiện?
- 8. Sự khác nhau giữa if (CONST == variable) hoặc if (variable == CONST) là gì?
- 9. Sự khác nhau giữa "else if" và "elif" trong bash là gì?
- 10. Sự khác biệt giữa Seq.map và Seq.collect trong F #
- 11. Sự khác biệt giữa "1.0f" và "1.f" là gì?
- 12. Sự khác biệt giữa try/catch/ném và try/catch (e)/ném e
- 13. HTTP If-None-Match và If-Match
- 14. Sự khác biệt giữa ". +" Và ". +?"
- 15. Trong Perl, sự khác biệt giữa "nếu được xác định là $ count" và "if $ count" là gì?
- 16. Sự khác biệt giữa "hoặc" và "||"
- 17. Sự khác biệt giữa Verilog! và ~?
- 18. sự khác biệt giữa PrintWriter và OutputStream
- 19. Bất kỳ sự khác biệt nào giữa f (const string &) và f (const string)?
- 20. Sự khác biệt giữa String.isEmpty() và String.equals ("")
- 21. chức năng tương đương với if (p (f (a), f (b)) a khác b
- 22. PHP: if (! $ Val) VS nếu (trống ($ val)). Có sự khác biệt nào không?
- 23. Sự khác biệt giữa $ (...) và `...`
- 24. Sự khác biệt giữa. và #
- 25. Sự khác biệt giữa $ * và $ @
- 26. Sự khác biệt giữa "**/* /" và "** /"?
- 27. Sự khác biệt giữa = và: =
- 28. Simple câu lệnh if vs bình thường câu lệnh if
- 29. Sự khác biệt giữa Window.load và document.readyState
- 30. `if [-e file.txt]` không hoạt động trong bash
@jww Đó là câu hỏi về khối nếu trong tập lệnh bash - nó có thể không phải là ngôn ngữ lập trình, nhưng tôi chắc chắn sẽ không gọi nó là chủ đề. – Ahatius
Đủ công bằng. Bạn đã gắn thẻ như vậy; vì vậy bạn đã chuyển nó về phía lập trình và tránh xa "làm thế nào để sử dụng lệnh này". Đã rút lại. – jww