Cách kiểm tra xem tệp hoặc thư mục có tồn tại trong tập lệnh Bash Shell hay không

Kiểm tra xem tệp hoặc thư mục có tồn tại từ tập lệnh Bash không

Bash được sử dụng để tự động hóa các lệnh được thực thi thường xuyên trong Linux. Các lệnh dành cho các hoạt động trên tệp / thư mục được sử dụng khá thường xuyên và thông thường, trước khi thực hiện một lệnh như vậy, chúng ta cần kiểm tra xem tệp hoặc thư mục cụ thể có tồn tại hay không. Hãy để chúng tôi xem làm thế nào để thực hiện kiểm tra này.

Cú pháp và cách sử dụng

Các tập tin

Để kiểm tra xem tệp có tồn tại hay không, sử dụng cú pháp sau:

[-f]

Cách diễn đạt [-f] trả về 0, tức là thành công nếu có tồn tại và nếu không tồn tại, nó sẽ trả về trạng thái khác 0. Thông thường, điều này được sử dụng như một điều kiện trong nếu như bản tường trình.

if [-f] then fi

Để phủ định giá trị trả về, chỉ cần đặt trước -f với một toán tử phủ định (!).

nếu như [ ! -f] rồi fi

Trong trường hợp này, điều kiện sẽ thỏa mãn nếu tệp không tồn tại, vì trạng thái khác 0 được trả về (sai) sẽ bị phủ định và được coi là 0 (đúng).

Lưu ý rằng nếu tệp cần kiểm tra không tồn tại trong thư mục hiện tại và tồn tại trong một số thư mục khác, thì đường dẫn đầy đủ của tệp sẽ được đề cập thay vì chỉ tên tệp.

Thư mục

Cú pháp tương tự như được sử dụng để kiểm tra tệp được sử dụng để kiểm tra thư mục.

[-d]

Tương tự như câu lệnh cho tệp, câu lệnh này trả về 0, tức là thành công, nếu thư mục tồn tại, và một trạng thái khác 0, tức là lỗi được trả về nếu nó không tồn tại. Điều này cũng thường được sử dụng trong một nếu như điều kiện tuyên bố.

if [-d] then fi

Để phủ định trạng thái trả về, hãy đặt trước -d với một toán tử phủ định (!).

nếu như [ ! -d] rồi fi

Điều kiện sẽ thỏa mãn (trạng thái 0) trong trường hợp này nếu thư mục không tồn tại và sẽ không thành công (trạng thái khác 0) nếu thư mục tồn tại.

Như đã đề cập trước đây đối với tệp, nếu thư mục được kiểm tra tồn tại ở một vị trí khác chứ không phải thư mục hiện tại, thì toàn bộ đường dẫn thư mục cần được nhập thay vì chỉ tên thư mục.

💡 Cú pháp dấu ngoặc ( [...] ) được sử dụng ở đây thực sự là một lệnh Linux được gọi là kiểm tra. Các tùy chọn -f-d là các tính năng của lệnh này. Để biết thêm thông tin, hãy xem trang hướng dẫn kiểm tra ( kiểm tra người đàn ông ).

Kiểm tra từ Bash Script

Trong các ví dụ trên, chúng tôi đã sử dụng các cú pháp trực tiếp trên thiết bị đầu cuối. Shell bất cứ khi nào nó gặp một vòng lặp hoặc một câu lệnh điều kiện (nếu như trong trường hợp của chúng tôi), nó tiếp tục lời nhắc và cho phép người dùng nhập khối tiếp tục.

Các cú pháp tương tự có thể được sử dụng từ bên trong tập lệnh Bash.

Các #! / bin / bash lúc bắt đầu chỉ định trình thông dịch sẽ được sử dụng khi tệp được thực thi. Mặc dù Bash là shell được sử dụng phổ biến nhất hiện nay, nhưng một số người dùng lại thích các shell như zsh, nên được chỉ định thay cho bash ở đầu tệp này.

Để cung cấp quyền thực thi cho tệp này, hãy chạy:

chmod + x test.sh

Cuối cùng, để thực thi tệp, chạy:

./test.sh