2015-06-10 22 views
10

Tôi đang sử dụng docker-machine để quản lý máy chủ đám mây của mình. Tôi đang viết một số tập lệnh bash để tự động hóa một số tác vụ. Câu hỏi đặt ra là: "Làm thế nào để kiểm tra trong kịch bản bash nếu máy docker với tên cụ thể đã tồn tại?". Tôi cần một số biểu thức để trả về true nếu nó tồn tại và sai nếu nó không.Làm cách nào để kiểm tra xem máy docker có tồn tại không?

Cảm ơn

+0

xem kết quả của 'mà Docker-machine' và kiểm tra nếu tập tin đó tồn tại? Nên có một cách tốt hơn – user2915097

Trả lời

1

Không phải là một guru kịch bản nhưng tôi sẽ làm một "docker-machine help", nếu lệnh này chạy và mã exit ($?) Là số không, Docker máy thực thi có sẵn và chức năng. Nếu mã trả về là 127 (thường được trả về bởi bash cho lệnh không tìm thấy) hoặc bất kỳ thứ gì khác không phải là số không, bạn có thể giả định rằng máy docker không được cài đặt hoặc không chạy đúng cách.

+0

Tôi đoán bạn có nghĩa là "mã thoát ($?)" –

+0

@ChandanNayak Cảm ơn bạn đã sửa chữa, vâng tôi có nghĩa là $ ?. Đã cập nhật câu trả lời. –

11

Chỉ cần chạy qua grep, nếu regexp đủ tốt cho bạn. Ví dụ: nếu bạn có một máy được gọi là foo:

$ docker-machine ls -q | grep '^foo$' 

Nên hoạt động và trả lại 0. Dấu mũ phù hợp với đầu dòng và khoảng trống tránh các phần trùng khớp. Nếu không khớp, bạn sẽ nhận được mã trả về khác 0.

+0

10x! Đó là chính xác những gì tôi đã hỏi về – wildsurfer

7

Bạn có thể sử dụng giống như sau:

docker-machine status some-machine 2> /dev/null || echo "Machine does not exists" 
+0

Tôi tìm thấy giải pháp này rất sạch sẽ. – Abhinav

Các vấn đề liên quan