উত্তর:
ম্যানপেজ থেকে :
দুটি বা ততোধিক যুক্তি দেওয়া হয়েছে, তাদের মানগুলির যোগফল দ্বারা নির্দিষ্ট সময়ের পরিমাণের জন্য বিরতি দিন ।
তাই:
sleep 7m 30s
bash
অন্তর্নির্মিত এবং জিএনইউ sleep
আচরণ worth POSIXly, sleep
শুধুমাত্র সেকেন্ডের হিসাবে ইন্টিজার বুঝতে প্রয়োজন বোধ করা হয়
ইতিমধ্যে দুটি দুর্দান্ত উত্তর রয়েছে তবে আমি কিছুটা প্রসারিত করতে চাই। আপনার টার্মিনালে কমান্ড অনুলিপি করুন এবং পেস্ট করুন:
$ sleep 3d 5h 7m 30.05s &
[1] 7321
এটি দ্বিতীয় প্রক্রিয়া শুরু করবে যা 3 দিন, 5 ঘন্টা, 7 মিনিট এবং 30.05 সেকেন্ডের জন্য ঘুমাবে। প্রক্রিয়া আইডি (পিআইডি) 7321
আমার ক্ষেত্রে।
পিআইডি ব্যবহার নিশ্চিত করতে
$ ps aux | grep sleep
rick 7321 0.0 0.0 14356 660 pts/2 S 22:40 0:00 sleep 3d 5h 7m 30.05s
root 12415 0.0 0.0 14356 700 ? S 22:41 0:00 sleep 60
rick 12500 0.0 0.0 21292 968 pts/2 R+ 22:41 0:00 grep --color=auto sleep
প্রথম এন্ট্রিটি হ'ল আমরা আগ্রহী। তৃতীয় এন্ট্রি হ'ল গ্রেপ কমান্ডের জন্য।
এখন sleep
পিআইডি দ্বারা উত্পাদিত কমান্ডের জন্য কত সময় বাকি রয়েছে (সেকেন্ডে) তা দেখতে 7321
আমরা এটি ব্যবহার করতে পারি: "ঘুম" এ কী পরিমাণ সময় বেঁধে যায় তা কীভাবে নির্ধারণ করা যায়? কমান্ড প্রয়োগ করুন:
$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05
কমান্ডের কোডটি আপনি নিজের ~/.bashrc
ফাইলে অন্তর্ভুক্ত করতে পারেন :
remaining_sleep_time() { # arg: pid
ps -o etime= -o args= -p "$1" | perl -MPOSIX -lane '
%map = qw(d 86400 h 3600 m 60 s 1);
$F[0] =~ /(\d+-)?(\d+:)?(\d+):(\d+)/;
$t = -($4+60*($3+60*($2+24*$1)));
for (@F[2..$#F]) {
s/\?//g;
($n, $p) = strtod($_);
$n *= $map{substr($_, -$p)} if $p;
$t += $n
}
print $t'
}
remaining_sleep_time
আপনার ~/.bashrc
ফাইলটিতে অনুলিপি করা দরকার । আপনি কোডটি ব্যাশ স্ক্রিপ্ট ফাইলটিতে রাখতে পারেন।
কমান্ড স্লিপ সর্বদা সেকেন্ডে গণনা করা হয়। আপনি ((7x60) +30) সেকেন্ড ব্যবহার করতে পারেন এবং তারপর কেবল টাইপ করুন:
ঘুম 450
sleep $((60*7))
ব্যবহার কয়েক মিনিটের জন্য করা যেতে পারে