আমার এসএসএইচ ওভার রিমোট সার্ভারের ক্রিয়াকলাপে একটি অগ্রগতি বারকে সংহত করতে হবে।
আমার পরিস্থিতিতে বেশ কয়েকটি লুপ রয়েছে যা এসএসএইচ-এর কয়েকটি রিমোট সার্ভারগুলিতে প্রক্রিয়াগুলি ট্রিগার করে। এই প্রক্রিয়াগুলির সাথে ট্রিগার করা হচ্ছে certainFunctionএবং 10 থেকে 60 মিনিটের মধ্যে সময় লাগে (অনেকগুলি অনাকাঙ্ক্ষিত জিনিসের উপর নির্ভর করে)। যতক্ষণ না প্রক্রিয়াগুলি একটি প্রধান সার্ভার থেকে নিয়ন্ত্রিত হয়, আমি সময় বা সময় বা বার (নট বা স্পিনার) এর উপর ভিত্তি করে কিছু অগ্রগতি বার প্রদর্শন করতে চাই যা সামগ্রিক অগ্রগতি নির্দেশ করে।
এটা কি সম্ভব?
কিছু অযৌক্তিক সমাধানের সন্ধান করে আমি পেয়েছি Éঅর্ডার্ড লোপেজের progress-bar.shপ্রকল্পটি আমার প্রয়োজনের জন্য উপযুক্ত।
এর জন্য কোডটি এখানে progress-bar.sh:
progress-bar() {
local duration=${1}
already_done() { for ((done=0; done<$elapsed; done++)); do printf "▇"; done }
remaining() { for ((remain=$elapsed; remain<$duration; remain++)); do printf " "; done }
percentage() { printf "| %s%%" $(( (($elapsed)*100)/($duration)*100/100 )); }
clean_line() { printf "\r"; }
for (( elapsed=1; elapsed<=$duration; elapsed++ )); do
already_done; remaining; percentage
sleep 1
clean_line
done
clean_line
}
এটি কি আমার পরিস্থিতির জন্য ব্যবহার করা যেতে পারে? আমি একটি খাঁটি বাশ সমাধান খুঁজছি যা কোনও অতিরিক্ত প্যাকেজ ইনস্টল করা নেই।
progress-bar ${#arrayOfIPaddresses[@]}এবং sleepআদেশের পরিবর্তে আপনার আসল কোডটি চালান
$duration; বিশেষত যখন অনেক অপ্রত্যাশিত জিনিস থাকে। সম্ভবত আপনি যে সেরা অগ্রগতি সূচকটি পেতে পারেন তা হ'ল "এম টাস্কগুলির এন এন" এর মতো।