আমার কমান্ডটি ইনপুট করার সময় আমার সিস্টেমটি 10:42 এর মতো সময় প্রদর্শিত হয়েছিল
date +%R। আমার বেশিরভাগ সময় নেওয়া দরকার। এর অর্থ এই 2৪২ মিনিটের মতো। মিনিটে মোট সময় প্রদর্শনের জন্য কি কোনও আদেশ বা শেল স্ক্রিপ্ট রয়েছে?
আমার কমান্ডটি ইনপুট করার সময় আমার সিস্টেমটি 10:42 এর মতো সময় প্রদর্শিত হয়েছিল
date +%R। আমার বেশিরভাগ সময় নেওয়া দরকার। এর অর্থ এই 2৪২ মিনিটের মতো। মিনিটে মোট সময় প্রদর্শনের জন্য কি কোনও আদেশ বা শেল স্ক্রিপ্ট রয়েছে?
উত্তর:
দিনের মোট মিনিট পেতে, আমি নিম্নলিখিত কমান্ডটি ব্যবহার করব:
$ date "+%H*60+%M" | bc
উদাহরণ:
$ date +%R
09:30
$ date "+%H*60+%M" | bc
570
কৌশলটি হ'ল dateআউটপুটটিকে bcফর্মুলার ব্যাখ্যা ও গণনা করার জন্য বিন্যাস করা ।
zsh
date "+%H*60+%M" | bcঠিক পাশাপাশি কাজ করে। সম্ভবত কোনও শেল সম্পর্কে।
শুধু বাশ:
IFS=: read hour min < <(date +%R)
echo $(( 60 * 10#$hour + 10#$min ))
উভয় ভেরিয়েবল অত্যাচার শেল অবৈধ অকট্যাল সংখ্যার জন্য ত্রুটি নিক্ষেপ এড়াতে 10-ভিত্তিক, যেমন চিকিত্সা করা 08এবং09
echo $(( $(date "+%k * 60 + 10#%M") ))আমি যা বলতে
ব্যবহার dateএবং bash:
eval "$(date +'today=%F now=%s')"; midnight=$(date -d "$today 0" +%s);echo "$(((now - midnight) / 60))"
উদাহরণ
$ date
Fr 10. Jul 08:45:05 CEST 2015
$ eval "$(date +'today=%F now=%s')"; midnight=$(date -d "$today 0" +%s);echo "$(((now - midnight) / 60))"
525
ব্যবহার dateএবং একটি z- শেল (zsh):
IFS=:; set -- $(date +%T); echo "$((($1 * 3600 + $2 * 60 + $3) / 60))"
উদাহরণ
% date
Fr 10. Jul 08:40:53 CEST 2015
% IFS=:; set -- $(date +%T); echo "$((($1 * 3600 + $2 * 60 + $3) / 60))"
520
IFS=: set -- $(date +%T); echo $1প্রত্যাবর্তন 08:16:52- আপনার প্রয়োজন হবেIFS=:; set ...
আপনার আইএফএস ব্যবহার করার দরকার নেই, আপনি এটি এইভাবে করতে পারেন:
date=$(date +'%l:%M')
read H M <<< ${date//[-: ]/ }
echo "Total minutes: $(($H * 60 + $M))"
আউটপুট হল:
Total minutes: 593
bash: 9 17*60+: syntax error in expression (error token is "17*60+")
echo $(date +"%H*60+%M") | bcএটি zsh;) এও কাজ করে