معنى - git bash




كيف يمكنني اختبار(في سطر واحد) إذا كان إخراج الأمر يحتوي على سلسلة معينة؟ (2)

في سطر واحد من bash ، كيف يمكنني إرجاع حالة الخروج من 0 عندما لا يحتوي إخراج /usr/local/bin/monit --version على 5.5 بالضبط وحالة خروج 1 عندما يحدث؟


اختبر قيمة الإرجاع من grep:

sudo service xyz status | grep 'not' &> /dev/null
if [ $? == 0 ]; then
   echo "whateveryouwant"
fi

أوصي كرون ، أنه يعمل بشكل جيد مع كومة SALT


! /usr/local/bin/monit --version | grep -q 5.5

(تقوم grep بإرجاع حالة الخروج من 0 إذا وجدت تطابقًا ، و 1. بخلاف ذلك. فإن خيار -q ، "هادئ" ، يخبرها بعدم طباعة أي تطابق تجده ؛ وبعبارة أخرى ، فإنه يخبر grep أن الشيء الوحيد الذي تريد هو قيمة إرجاعها. في البداية يبدل حالة الخروج لخط الأنابيب بأكمله.)

تم التعديل للإضافة: بدلاً من ذلك ، إذا كنت تريد إجراء ذلك في "bash pure" (بدلاً من استدعاء grep ) ، فيمكنك كتابة:

[[ $(/usr/local/bin/monit --version) != *5.5* ]]

( [[...]] موضحة في § 3.2.4.2 "Conditional Constructs" من دليل Bash المرجعي . *5.5* هو الحال في fileglobs: صفر أو أكثر من الأحرف ، زائد 5.5 ، بالإضافة إلى صفر أو أكثر من الأحرف.)





bash