আমি ব্যক্তিগতভাবে হোমব্রু ব্যবহার করি না, তাই brew
সর্বশেষতম সংস্করণ নম্বরটি অনলাইনে উপলব্ধ করার জন্য যদি নিজেই কোনও উপায় ব্যবহার করে থাকে তবে আমি এটি জানি না।
নোট করুন যে ২ 27 শে জুন, ২০১২ এবং হোমব্রাবির সংস্করণ ০.৯.১ থেকে সংস্করণ নম্বরটি major.minor.maintenance
একটি নির্দিষ্ট সময়ের সাথে পৃথক সংখ্যাগুলি ব্যবহার করে একটি নির্দিষ্ট আদর্শ প্যাটার্ন বজায় রেখেছে । তাই এই পরীক্ষা করার জন্য যে মান কমান্ড তাদের দায়িত্ব অর্পণ করা উভয় ইনস্টল সংস্করণ এবং সর্বশেষ রিলিজ সংস্করণে ব্যবহৃত বদল থেকে প্রত্যাগত অপেক্ষাকৃত সহজ ভেরিয়েবল এই প্যাটার্ন অনুসরণ করুন।
একবার পরীক্ষা করার পরে, সংস্করণটির স্ট্রিংগুলি সংখ্যায় রূপান্তরিত হয় যাতে একটি বাইনারি তুলনা নির্ধারণ করতে পারে যে ইনস্টল করা সংস্করণ সর্বশেষ প্রকাশের সংস্করণের চেয়ে কম কিনা, যার পর্যায়ে উপযুক্ত পদক্ষেপ নিতে পারে।
নিম্নলিখিত bash
স্ক্রিপ্টটি কীভাবে এটি কোড করতে পারে তার একটি উদাহরণ :
#!/bin/bash
# Get installed version number and latest release version number.
localHomebrewVersion="$(brew --version | awk '/Homebrew [0-9]/{print $2}')"
latestHomebrewRelease="$(curl -sL https://api.github.com/repos/Homebrew/brew/releases/latest | ruby -rjson -e 'puts JSON.parse($<.read)["name"]')"
# Test that both variables hold the expected pattern.
if [[ $localHomebrewVersion =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]] && [[ $latestHomebrewRelease =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]]; then
# Function used to convert string version numbers to numeric values for testing.
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d", $1,$2,$3,$4); }'; }
# Test to see if the installed version number is less than the latest release version.
if [[ $(version $localHomebrewVersion) -lt $(version $latestHomebrewRelease) ]]; then
brew update
else
echo "Homebrew is already up-to-date."
fi
else
# One or both of the command substitutions '$(...)' returned unexpected output for the version variables.
echo "At least one of the version variables contains an unexpected value."
fi
দ্রষ্টব্য: আমি ভেরিয়েবলটি নির্ধারণের জন্য সিনোলির মন্তব্যে প্রস্তাবিত কমান্ডটি অন্তর্ভুক্ত করেছি , কারণ এটি সর্বশেষতম প্রকাশিত সংস্করণের তথ্য পাওয়ার জন্য আরও স্থিতিশীল পদ্ধতি বলে মনে হচ্ছে।latestHomebrewRelease
আপডেট: ইনস্টল করা সংস্করণটি সর্বশেষ প্রকাশিত সংস্করণের চেয়ে কম হলে পরীক্ষার আগে সংস্করণ ভেরিয়েবলগুলি প্রত্যাশিত প্যাটার্ন ধারণ করে একটি পরীক্ষা যুক্ত করেছে Added