আমি একটি আধা সম্পর্কিত স্ট্যাকওভারফ্লো প্রশ্নে নিম্নলিখিতটি পেয়েছি ; আমার যে উত্তরটির প্রয়োজন ছিল তা আসলে প্রশ্নের যথেষ্ট উত্তর দেয়নি (এবং সঠিক উত্তর হিসাবে নির্বাচিত হয়নি) তাই আমি বুঝতে পেরেছিলাম যে অন্যদের আরও সহজ হওয়ার জন্য আমি এটি এখানে পোস্ট করেছি।
yum list installed PACKAGE_NAME
এই কমান্ডটি কিছু মানব-পঠনযোগ্য আউটপুট দেয়, তবে আরও গুরুত্বপূর্ণভাবে একটি প্রস্থান স্থিতি কোড দেয়; 0 প্যাকেজ ইঙ্গিত করা হয় 1 ইঙ্গিত প্যাকেজ ইনস্টল না ইনস্টল (চেক করবেন কিনা প্যাকেজ বৈধ, তাই yum list installed herpderp-beepbopboopএকটি "1" ফিরে আসবে ঠিক যেমন yum list installed tracerouteহবে যদি আপনি traceroute ইনস্টল না)। আপনি পরবর্তীকালে "$" পরীক্ষা করতে পারেন? এই প্রস্থান কোডের জন্য।
যেহেতু আউটপুটটি কিছুটা স্ব-স্বজ্ঞাত, তাই আউটপুটটিকে আরও "লজিকাল" (যেমন 1 = ইনস্টলড = = ইনস্টল করা হয়নি) করতে আমি নীচে একটি ক্র্যাপার ডাউনস এর "কনডেন্সড" সংস্করণটি ব্যবহার করেছি:
function isinstalled {
if yum list installed "$@" >/dev/null 2>&1; then
true
else
false
fi
}
ব্যবহার হবে
if isinstalled $package; then echo "installed"; else echo "not installed"; fi
সম্পাদনা করুন:
returnকলগুলি দিয়ে প্রতিস্থাপনের বিবৃতি trueএবং falseযা ফাংশনটিকে আরও পাঠযোগ্য / স্বজ্ঞাত করতে সহায়তা করে, মানগুলি প্রত্যাশাগুলি প্রত্যাবর্তনের সময় (অর্থাত সত্যের জন্য 0, ভ্রান্তের জন্য 1)।
আপনি যদি কেবলমাত্র আপনার স্ক্রিপ্টে একটি প্যাকেজের জন্য যাচাই করছেন, আপনি yum list installedসরাসরি পরীক্ষা করার চেয়ে আরও ভাল হতে পারেন , তবে (আইএমএইচও) ফাংশনটি কী চলছে তা বোঝা আরও সহজ করে তোলে এবং এর বাক্য গঠনটি yumসমস্ত পুনঃনির্দেশের চেয়ে মনে রাখা খুব সহজ is তার আউটপুট দমন করা।
$?, কেবলমাত্র শর্তসাপেক্ষে কমান্ডটি মোড়ানো:if yum list installed "$package" >/dev/null 2>&1; then [...]