Những gì bạn mô tả sẽ hoạt động tốt - miễn là bạn đang sử dụng các đường dẫn tuyệt đối và -f
("Tệp tồn tại và là một tệp thông thường") thực sự là thử nghiệm bạn muốn thực hiện.
Tôi thấy một dấu vết /
trong những gì bạn đã đăng trong câu hỏi của bạn - Bạn đang thử nghiệm cho một thư mục? Điều đó nên -d
, hoặc đơn giản -e
("Một cái gì đó tồn tại với tên đó - bất kể loại nào")
Cũng lưu ý rằng trừ khi một cái gì đó trên đường đi là không thể đọc được test
( [
) sẽ có thể cho bạn biết nếu một tập tin sở hữu bởi root tồn tại hay không (ví dụ như [ -f /root/.ssh/known_hosts ]
có thể sẽ thất bại, vì thư mục /root/.ssh không (hoặc ít nhất shouldn Người dùng bình thường có thể đọc được. [ -f /etc/crontab ]
nên thành công).