Trong một dòng bash, làm thế nào để tôi trả về trạng thái thoát là 0 khi đầu ra của /usr/local/bin/monit --version
không chứa chính xác 5.5
và trạng thái thoát 1 khi nó hoạt động?Làm cách nào để kiểm tra (trong một dòng) nếu đầu ra lệnh chứa một chuỗi nhất định?
Trả lời
! /usr/local/bin/monit --version | grep -q 5.5
(grep
trả về một lối ra-trạng thái 0 nếu nó tìm thấy một trận đấu, và 1 khác Các tùy chọn -q
, "yên tĩnh", nói với nó không in bất kỳ trận đấu mà nó tìm thấy;. Nói cách khác, nó nói . grep
rằng điều duy nhất bạn muốn là trở lại giá trị của nó các !
lúc đầu đảo ngược lối ra-tình trạng của toàn bộ đường ống)
Edited thêm:. Ngoài ra, nếu bạn muốn làm điều này trong "tinh khiết Bash "(thay vì gọi số grep
), bạn có thể viết:
[[ $(/usr/local/bin/monit --version) != *5.5* ]]
([[...]]
được giải thích trong §3.2.4.2 "Conditional Constructs" of the Bash Reference Manual. *5.5*
là giống như trong fileglobs:. Zero hoặc nhiều ký tự, cộng với 5.5
, cộng với không hoặc nhiều ký tự)
[ $(/usr/local/bin/monit --version) == "5.5" ]
ví dụ-1: kiểm tra cho sự thành công
[ $(/usr/local/bin/monit --version) == "5.5" ] && echo "OK"
ví dụ 2: kiểm tra cho sự thất bại
[ $(/usr/local/bin/monit --version) == "5.5" ] || echo "NOT OK"
hay, chỉ cần kiểm tra xem sản lượng chứa 5.5
:
[[ $(/usr/local/bin/monit --version) =~ "5.5" ]] || echo "NOT OK"
"5.5" sẽ là một phần của số lượng đầu ra lớn hơn. –
đã cập nhật câu trả lời – perreal
@perreal - Bạn không thể trích dẫn regex trong bash, nó làm cho nó trở thành một chuỗi chữ chứ không phải là một regex. (trích dẫn các tác phẩm trong một số phiên bản cũ của bash, nhưng đã được sửa thành lỗi). – jordanm
Kiểm tra giá trị trả về của grep:
sudo service xyz status | grep 'not' &> /dev/null
if [ $? == 0 ]; then
echo "whateveryouwant"
fi
Tôi muốn giới thiệu cron, nó hoạt động tốt với MUỐI chồng
- 1. Kiểm tra xem đầu ra của lệnh có chứa một chuỗi nhất định trong tập lệnh shell
- 2. Làm thế nào để kiểm tra xem một TextView có chứa một chuỗi nhất định
- 3. Làm cách nào để kiểm tra xem chuỗi chuỗi có chứa một chuỗi trong JavaScript không?
- 4. Chuỗi Bash (đầu ra lệnh) kiểm tra bình đẳng
- 5. Kiểm tra xem một lát chuỗi có chứa một giá trị nhất định trong Go
- 6. Kiểm tra Powershell nếu mảng trong một dòng
- 7. Kiểm tra một chuỗi để xem nếu nó chứa ký tự số trong UNIX
- 8. Kiểm tra nếu một ComboBox chứa mục
- 9. Làm thế nào để kiểm tra nếu có từ trong một danh sách chứa một chuỗi một phần?
- 10. Làm cách nào để xác minh rằng một chuỗi các chuỗi có chứa một chuỗi nhất định?
- 11. Đầu ra kiểm tra đến dòng lệnh với RSpec
- 12. Kiểm tra nếu chuỗi không bằng một trong hai chuỗi
- 13. Kiểm tra nhiều chứa trên một chuỗi
- 14. Làm cách nào để kiểm tra chuỗi cho một chữ cái nhất định bằng Python?
- 15. Cú pháp nào sẽ kiểm tra nếu một tên biến chứa dấu cách được xác định?
- 16. Làm thế nào để kiểm tra một biến giá trị null nếu nó là một chuỗi?
- 17. Làm thế nào để áp dụng lệnh shell cho mỗi dòng của một đầu ra lệnh?
- 18. Làm thế nào để kiểm tra trong MATLAB nếu một vector chỉ chứa số không?
- 19. Kiểm tra nếu một mảng chứa một mảng với PHP
- 20. Làm thế nào để kiểm tra xem một chuỗi có chứa ít nhất một bảng chữ cái trong java?
- 21. Cách kiểm tra xem một dòng có một trong các chuỗi trong danh sách không?
- 22. Kiểm tra Javascript nếu tệp (txt) chứa chuỗi/biến
- 23. Làm cách nào để kiểm tra xem tệp văn bản có chứa một số văn bản nhất định không?
- 24. Kiểm tra xem một chuỗi trong một danh sách chứa một chuỗi cụ thể với LINQ
- 25. một dòng khẳng định để kiểm tra nếu container STL được sắp xếp
- 26. Làm cách nào để kiểm tra xem chuỗi có bắt đầu bằng chuỗi nhất định trong C không?
- 27. Làm thế nào để tạo ra một vectơ có chứa một chuỗi số với một bước nhất định?
- 28. Kiểm tra xem chuỗi không chứa một chuỗi khác
- 29. Làm thế nào để hiển thị dòng đầu tiên có chứa một chuỗi nhất định trong một tập tin văn bản unix?
- 30. Làm cách nào để xem NSString có bắt đầu bằng một chuỗi nhất định khác không?
lưu bacon của tôi! – mhenrixon
Nỗ lực thiên tài! Sức mạnh của đường ống liên tục ấn tượng. –
Có bất kỳ giá trị nào của '/ usr/local/bin/monit --version' khi nó bị lỗi không? –