বাশ স্ক্রিপ্ট থেকে কোনও রুবি রত্ন ইনস্টল করা আছে কিনা তা পরীক্ষা করা হচ্ছে


14

আমাকে বাশ স্ক্রিপ্ট থেকে কিছু রুবি রত্ন ইনস্টল করা আছে কিনা তা পরীক্ষা করে দেখতে হবে।

আমি ভেবেছিলাম আমি এরকম কিছু করতে পারি

if ! gem list <name>; then do_stuff; fi

তবে কমান্ড লাইনে পরীক্ষা করে echo $?দেখানো হয় যে gem list <name>নামটি পাওয়া গেছে কিনা নির্বিশেষে 0 প্রদান করে।

এর অর্থ কি রত্ন তালিকার আউটপুট ফিল্টার করার জন্য আমাকে গ্রেপ ব্যবহার করতে হবে, বা রত্ন ইনস্টল করা আছে কিনা তা দেখার জন্য আরও ভাল উপায় আছে কি?

উত্তর:


26

gem list <name> -itrueমণি ইনস্টল করা থাকলে এবং falseঅন্যথায় স্ট্রিংটি ফিরিয়ে দেবে । এছাড়াও, রিটার্ন কোডগুলি আপনি প্রত্যাশা করবেন।

আরও তথ্যের জন্য, দেখুন gem help list


সম্পাদনা করুন: @ রিয়েট সঠিকভাবে পর্যবেক্ষণ করেছে যে আপনি যদি অন্য কোনও ইনস্টল করা রত্নের একটি স্ট্রিংয়ের মতো কোনও রত্ন নামটি অনুসন্ধান করেন তবে এটি মিথ্যা ধনাত্মকতা দিতে পারে। এটি এড়াতে, একটি রেজেক্স সিনট্যাক্স ব্যবহার করুন:

gem list '^<name>$' -i

(উদাহরণ gem list '^mini$' -i:)।


1
একটি নির্দিষ্ট সংস্করণটিতে ইনস্টল করা পরীক্ষা করার জন্য, শুধু যোগ --version, যেমন: gem list -i compass --version 0.12.4
মোফেফজু

6

দেখে মনে হচ্ছে gem specযে নামটি রত্ন ইনস্টল না করা থাকলে কোনও ত্রুটি সহ আদেশটি ব্যর্থ হবে। তাই:

if ! gem spec <name> > /dev/null 2>&1; then
  echo "Gem <name> is not installed!"
fi

আমি জানি না এটি সমাধানের এটি সাধারণ উপায় কিনা তবে এটি কার্যকর হয়।


3

আপনি queryকমান্ডের জন্য সাব-কমান্ডও ব্যবহার করতে পারেন gem

$ gem query -i -n bundler 
true
ব্যবহারের অংশ
$ gem help query
Usage: gem query [options]

  Options:
    -i, --[no-]installed             Check for installed gem
    -I                               Equivalent to --no-installed
    -v, --version VERSION            Specify version of gem to query
                                     for use with --installed
    -n, --name-matches REGEXP        Name of gem(s) to query on matches the
                                     provided REGEXP

-vস্যুইচটি ব্যবহার করে নির্দিষ্ট সংস্করণগুলিও সন্ধান করবে ।

$ gem query -i -n bundler -v 1.6.2.1
false

1
ডাউনভোটের জন্য ক্ষমাপ্রার্থী, তবে ম্যান পেজে যেমন বলা হয়েছে gem query: "ক্যোয়ারী কমান্ড হ'ল তালিকা এবং অনুসন্ধান আদেশের ভিত্তি instead ... এসও সম্প্রদায়ে খারাপ অভ্যাস তৈরি করতে চাই না! :-)
pvandenberk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.