আমার কমান্ডটি ইনপুট করার সময় আমার সিস্টেমটি 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;) এও কাজ করে