Thường khi viết cho bash shell, người ta cần kiểm tra xem một tệp (hoặc Thư mục) tồn tại (hoặc không tồn tại) và thực hiện hành động thích hợp. Phổ biến nhất trong số những thử nghiệm là ...Kiểm tra nhiều điều kiện tệp trong một lần đổi (BASH)?
-e
- tập tin tồn tại, -f
- file là một file bình thường (không phải là một thư mục hoặc thiết bị tập tin), -s
- tập tin không phải là kích thước không, -d
- tập tin là một thư mục, -r
cho phép tập tin đã đọc, -w
- - tập tin có viết, hoặc -x
quyền thực thi (đối với người dùng chạy thử nghiệm)
này có thể dễ dàng xác nhận là chứng minh trên thư mục người dùng có thể ghi này ....
#/bin/bash
if [ -f "/Library/Application Support" ]; then
echo 'YES SIR -f is fine'
else echo 'no -f for you'
fi
if [ -w "/Library/Application Support" ]; then
echo 'YES SIR -w is fine'
else echo 'no -w for you'
fi
if [ -d "/Library/Application Support" ]; then
echo 'YES SIR -d is fine'
else echo 'no -d for you'
fi
➝ không -f cho bạn ✓
➝ YES SIR -w là tốt ✓
➝ YES SIR -d là tốt ✓
Câu hỏi của tôi, mặc dù có vẻ hiển nhiên, và khó có khả năng là không thể - là làm thế nào để đơn giản kết hợp những thử nghiệm này, mà không cần phải thực hiện một cách riêng biệt cho từng tình trạng ... Thật không may ...
if [ -wd "/Library/Application Support" ]
▶ -wd: unary operator expected
if [ -w | -d "/Library/Application Support" ]
▶ [: missing `]'
▶ -d: command not found
if [ -w [ -d "/Library.... ]] & if [ -w && -d "/Library.... ]
▶ [: missing `]'
➝ không -wd cho bạn ✖
➝ no -w | -d cho bạn ✖
➝ không [-w [-d ..]] cho bạn ✖
➝ không -w & & -d cho bạn ✖
tôi thiếu gì ở đây?
Theo [những kẻ này] (http://tldp.org/LDP/abs/html/fto.html) ... "' -a' tập tin tồn tại - Điều này giống hệt với hiệu ứng -e. "Không được chấp nhận", và việc sử dụng nó không được khuyến khích. "Không được chấp nhận sau đó được chú thích với điều này ... Mỗi ấn bản năm 1913 của Từ điển Webster: Không được chấp nhận ... Để cầu nguyện, như một điều ác; để tìm kiếm để thay đổi bằng cách cầu nguyện, để mong muốn xóa bỏ; để tìm kiếm sự giải thoát khỏi; để bày tỏ sự hối tiếc sâu sắc cho; để từ chối mạnh mẽ –
@ Alex: Đó là điều gì đó khác, đừng lo lắng về điều đó. "có nghĩa là" và " –