Fish Shell:
Kiểm tra xem thư mục có tồn tại không
Cách thực hiện:
Kiểm tra xem một thư mục có tồn tại với lệnh test
đơn giản:
if test -d /path/to/dir
echo "Thư mục tồn tại"
else
echo "Không có thư mục này"
end
Kết quả mẫu khi thư mục tồn tại:
Thư mục tồn tại
Kết quả mẫu khi thư mục không tồn tại:
Không có thư mục này
Đi sâu vào vấn đề
Lệnh test
([ ]
trong các shell POSIX) đã là một phần của hệ thống giống Unix trong nhiều thập kỷ. Trong Fish, test -d
kiểm tra sự tồn tại của thư mục. Đây là một cách tiếp cận tốt hơn so với việc dựa vào kết quả từ các lệnh như ls
, có thể không nhất quán hoặc quá chi tiết.
Các phương án khác:
status
có thể xác định xem một lệnh trước đó, nhưcd /path/to/dir
, đã thành công hay không. Tuy nhiên, điều này không được khuyến nghị chỉ để kiểm tra sự tồn tại, vì nó thay đổi trạng thái của shell.- Các công cụ bên ngoài như
find
hoặc ngôn ngữ lập trình (Python, Ruby) có thể thực hiện các nhiệm vụ tương tự nhưng thường là quá mức cho các kiểm tra đơn giản.
Thông tin chi tiết về việc triển khai:
Lệnh test
có sẵn của Fish hiệu quả và đáng tin cậy. Nó tránh được những hạn chế thường gặp với việc gọi lệnh bên ngoài và cung cấp cú pháp dễ hiểu.
Xem thêm
- Tài liệu Fish Shell về
test
: https://fishshell.com/docs/current/cmds/test.html - Thông số kỹ thuật POSIX cho
test
: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html - Thảo luận về việc kiểm tra sự tồn tại của tệp: https://unix.stackexchange.com/questions/590694/checking-if-a-directory-exists-in-unix-shell-scripting