আপটাইম অগ্রগতি বার


13

এমন একটি প্রোগ্রাম লিখুন যা আউটপুটকে uptimeবিশ্লেষণ করে এবং শারীরিকভাবে প্রস্তাবমূলক অগ্রগতি বার তৈরি করে (যেমন দেখানো হয়েছে) বর্তমান সময়ের আপটাইমের সমান দৈর্ঘ্য সহ:

$ uptime
23:01  up 34 days,  7:30, 5 users, load averages: 0.23 0.27 0.24
$ uptime|<command>
8==================================D

(34 দিন = 34 সমান লক্ষণ)

সংক্ষিপ্ত উত্তর জয়।


@ ডিএমকে: সম্পাদনা করার জন্য ধন্যবাদ তবে, একটি স্বল্প বানান ত্রুটি আছে: 'anotomically' পড়া উচিত 'anatomically'।
জোয় অ্যাডামস

@ জোয়ি: এবং আমিও "শারীরিকভাবে" ভুল বানান করেছি। ধন্যবাদ।
ডিএমকেই --- প্রাক্তন-মডারেটর বিড়ালছানা

5
হুঁ, কেবল একটি নিটপিক, এমন একটি জিনিসের জন্য একটি "প্রগতি বার" যার জ্ঞাত পরিণতি নেই (সুতরাং, আপনি এর অগ্রগতিটি পরিমাপ করতে পারবেন না) অদ্ভুত শোনায়। শুধু "বার" কি যথেষ্ট হবে?
houbysoft

2
আমার
আপটাইমটি

1
@ ব্যবহারকারীর জানা এই প্রশ্নের প্রথম সংস্করণে এটির প্রাসঙ্গিকতা ছিল। সম্পাদনাগুলি একবার দেখুন ...
গ্যারেথ

উত্তর:


6

রুবি, 39

কোনও ইনপুট লাগবে না (শেল আউট করে):

`w`=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'

বা স্টিডিন থেকে (40 টি চর):

gets=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'

স্ট্রিং ইন্টারপোলেশন এবং একটি অক্ষর আক্ষরিক ব্যবহার করে 2 টি অক্ষর হ্রাস করুন:gets=~/up (\d*)/;puts "8#{?=*$1.to_i}D"
মাইকেল কোহল

এই ক্ষেত্রে ইন্টারপোলেশন এবং কনটেনটেশন ব্যবহার করে চরিত্রের গণনা হুবহু একই।
ডেভিড

এটি নয়, তাদের আপনার অনুলিপিটিতে অনুলিপি করুন: twitpic.com/49413j
মাইকেল কোহল

'gets=~/up (\d*)/;puts "8#{"="*$1.to_i}D"'.length=="gets=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'".length#true
ডেভিড

শেষ লাইনে কিছু অক্ষর সংরক্ষণ করুন: $> <<? 8 +? = * $ 1.to_i +? ডি
স্টেনস্ল্যাগ

5

বাশ, 71 টি অক্ষর

a=`uptime` a=${a#*p } a=${a%% *};while((a--));do p==$p;done;echo I${p}I

ইন্টারনেটে আমার জিন আপটাইমগুলি প্রকাশের পক্ষে আমি তেমন কিছু নই , সুতরাং পরিবর্তে আমি একটি বেড়া আঁকছি। এটি একই চরিত্র গণনা। pকলগুলির মধ্যে পুনরায় সেট করার কথা ভাবুন ।

খাঁটি বাশ, 71 টি অক্ষর সহ uptime

$ uptime
 23:35:12 up 159 days,  4:15, 15 users,  load average: 1.07, 0.63, 0.38

ভাল, ভাল, ভাল ... আপনার চেয়ে আমার বড়।


যদি এটি পরিষ্কার না হয়: আপনি যদি চান তবে আপনার পছন্দসই ভাষায় শেল আউট করতে পারেন (এটি খাঁটি বাশ হওয়ার দরকার নেই)। আমি প্রশ্ন স্পষ্ট করা উচিত?
ম্যাগনাস হল্ম

5

পার্ল - 26 24 টি অক্ষর

/p (\d+)/;say+8,"="x$1,D

এর মতো দৌড়ে:

$ uptime
 04:52:39 up 17 days, 11:27,  3 users,  load average: 0.21, 0.07, 0.02
$ uptime | perl -nE '/p (\d+)/;say+8,"="x$1,D'
8=================D

সম্পাদনা : চূড়ান্ত 'ডি' উদ্ধৃত - ধন্যবাদ জেবি


আপনি ডি
জেবি

4

হাস্কেল, 88 টি অক্ষর

যেমনটি প্রায়শই ঘটে থাকে, হাস্কেল অন্য কয়েকটি ভাষার চূড়ান্ত গল্ফযোগ্যতা সরবরাহ করে না, তবে সমস্যাটির অন্তর্গত গাণিতিক কাঠামোর একটি মার্জিত অভিব্যক্তিটিকে অনুমতি দেয়। এই ক্ষেত্রটিতে তাদের কাজকর্মের উপর ভিত্তি করে, আমি হোলকিনস-ক্রাহুলিক অ্যাজিক্সিমেশন অপারেটরের একটি হাস্কেল বাস্তবায়ন প্রবর্তনের লক্ষ করি । সংক্ষেপে, অপারেটর তার উভয় ইনপুট উপেক্ষা করে এবং দৈর্ঘ্যের দ্বারা প্যারামিটারাইজড একটি ফ্যালাস-প্রিন্টিং ফাংশন প্রদান করে।

_⁑≈≈≈⊃_=(\n->concat["8",take n$repeat '=',"D"])
main=interact$(0⁑≈≈≈⊃1).read.(!!2).words

4

পার্ল, 17 অক্ষর
এখন বলার সাথে:

say+8,"="x$F[2],D

উৎপাদনের

uptime | perl -naE 'say+8,"="x$F[2],D'

ছিল:

print"8"."="x$F[2]."D"

উৎপাদনের

]# uptime | perl -anle 'print"8"."="x$F[2]."D"'
8=========================D

(দুঃখের সাথে আমি "বলতে" পারি না)



3

35 টি অক্ষর

awk '{printf"#%"$3"sp",p}'|tr \  \*

তাই হয়,

uptime
12:27μμ  up 111 days,  2:36, 1 user, load averages: 0,07 0,03 0,00
uptime | awk '{printf"#%"$3"sp",p}'|tr ' ' '*'

#***************************************************************************************************************p

সম্পাদনা : ছিল

printf "#%`awk '{print $3}'`sp"|tr ' ' '*'

সম্পাদনা 2 : জেবির মন্তব্য ( \পরিবর্তে ব্যবহার করুন '')


1
2 অক্ষরের উদ্ধৃতি না দিয়ে স্পেস এবং অ্যাসিরিস্টকে একটি ব্যাকস্ল্যাশ দিয়ে ছেড়ে দিন।
জেবি

3

উইন্ডোজ পাওয়ারশেল, 28

"8$('='*(-split$input)[2])D"

অন্তত

echo 23:01  up 34 days,  7:30, 5 users, load averages: 0.23 0.27 0.24|powershell -file uptime.ps1 

সঠিক আউটপুট দেয়, সুতরাং এটির uptimeআউটপুট পরিচালনা করতে সক্ষম হওয়া উচিত । আমি পরীক্ষা করতে পারছি না, যেহেতু, জিএনইউউইন 32 একটি ভাঙ্গা অন্তর্ভুক্ত করেছে uptimeযা অ-অস্তিত্বহীন ফাইল থেকে পড়ার চেষ্টা করে (ইউনিক্স সরঞ্জাম বহনকারী লোকদের জন্য দ্রষ্টব্য: উইন্ডোজ একটি ইউনিক্স বলে ধরে নেওয়ার চেষ্টা করবেন না এবং একই নীতি বা কনভেনশনগুলিকে মেনে চলেন; সেখানে) উইন্ডোজে বুট টাইমযুক্ত কোনও ফাইল নেই)।


3

কমন লিস্প, 84 টি অক্ষর

(defun p(s)(write 8)(loop repeat(read-from-string(subseq s 9))do(write'=))(write'D))

এটি ইনপুট হিসাবে আপটাইম স্ট্রিং লাগে। মনে হচ্ছে একটি তালিকাতে # 'রাইটিংয়ের একটি সংক্ষিপ্ত সমাধান ম্যাপিং হওয়া উচিত, তবে যদি তাই হয় তবে আমি এটি নিয়ে আসতে পারি না।


+1 আপনি এখানে কমন লিপ ব্যবহার করা খুব কমই দেখতে পাবেন।
সহায়ক পদ্ধতি 19

3

গল্ফস্ক্রিপ্ট (24 টি অক্ষর)

' '/{(;}3*(\;~'='*8\'D'

হাস্কেল (characters৩ টি অক্ষর)

main=getLine>>=putStr.('8':).(++"D").(`take`repeat '=').read.(!!2).words

সি (১৩১ টি অক্ষর)

#define r(a);read(0,x,a),
#define p ;putchar(
x[9];main(i){for(r(1)i<3;i+=*x==32)r(9)0
p'8');for(i=atoi((int)x+2);i--p'='))p'D');}

আপনার গল্ফস্ক্রিপ্ট ২৪ টি অক্ষর, ২৪ নয়। এছাড়াও, আপনি সূচি দ্বারা সমান নির্বাচনটি ব্যবহার করে এটি 16 টি সংক্ষিপ্ত করতে পারেন (সমান চিহ্ন):' '/3=~8\'='*'D'
ক্রিশ্চিয়ান লুপাস্কু

2

পিএইচপি, 62 টি অক্ষর

<?$d=split(" ",`uptime`);echo 8;while($d[3]--)echo"=";echo"D";

কোনও ইনপুট প্রয়োজন নেই, এটি শেল আউট।


2

পাইথন (42)

print('8'+int(input().split()[2])*"="+'D')

দ্রষ্টব্য: পাইথন 3 মোট অক্ষরের সংখ্যা হ্রাস করার জন্য ব্যবহৃত হয়েছে।


2

পাইথন, 65 বাইট

import sys
print '8'+'='*int(sys.stdin.readline().split()[2])+'D'

পরীক্ষা:

echo '23:01  up 34 days,  7:30, 5 users, load averages: 0.23 0.27 0.24'|./time.py
8==================================D


1

কমন লিস্প, 57 টি অক্ষর

(বাস্তবায়ন / ওএস-নির্দিষ্ট শেবাং বাদে)

#!/opt/local/bin/sbcl --script
(do()((eql(read-char)#\p)(format t"8~v,,,'=<~>D"(read))))

ডাঃ পেইনের উত্তরের পুনরাবৃত্তি চরিত্রটি লেখার জন্য আরও ছোট উপায়ে সন্তুষ্টির প্রয়াসের ভিত্তিতে । এই একটি পাইপলাইনে প্রশ্নের মতো দেখানো হিসাবে ব্যবহার করা যেতে পারে।

(বিন্যাসের স্ট্রিংটি আর্গুমেন্ট দ্বারা বর্ণযুক্ত অক্ষর দ্বারা নির্দিষ্টভাবে প্রস্থের ক্ষেত্রে নির্দিষ্ট ফাঁকের স্ট্রিংকে ( ~<এবং এর মধ্যে ~>) খালি স্ট্রিংকে ডান-ন্যায্য প্রমাণ করতে নির্দিষ্ট করে =)


1

কে, 35

-1"8",(("I"$(" "\:0:0)@3)#"="),"D";

$ uptime
17:21:47 up 242 days,  7:22, 35 users,  load average: 0.33, 0.34, 0.44
$ uptime | q t.k
8============================================================================ ...

0

67 টি অক্ষর

read t u d w
echo -e '\t'|expand -t $d|sed 's/^/8/;s/ /=/g;s/$/B/;'

কার্যপত্রের অনুরোধ:

uptime | ./cg1570uptime-bar.sh

অনেক খাটো

মাত্র 54 অক্ষর:

এই প্রকরণের সাথে:

echo -e '\t'|expand -t $3|sed 's/^/8/;s/ /=/g;s/$/B/;'

অনুরোধ, বিধি অনুসারে 100% নয়:

./cg1570uptime-bar.sh $(uptime)

উভয় সময়ে আউটপুট:

uptime && uptime | ./cg1570uptime-bar.sh 
06:29:53 up 16 days, 21:03, 10 users,  load average: 1.29, 1.34, 1.23
8================B

নিত্যদিনের কৌশল:

 read t u d w

06: 29: 53 = t, আপ = ইউ, 16 = ডি রেস্ট ... = ডাব্লু
ছাড়াই শেষ পর্যন্ত সবকিছু everything d তে রেখে দেওয়া হবে।

প্রসারণ সাধারণত একটি ট্যাবকে ফাঁকা পরিমাণে অনুবাদ করতে ব্যবহৃত হয় এবং আপনি 8 টি পছন্দ না করে একটি পরামিতি নেন।

3 para প্যারামিটারটি 3 ডলার ইন দখল echo -e '\t'|expand -t $3|sed 's/ /=/g'করা এমনকি আরও খাটো, তবে একটি অনুরোধ প্রয়োজন, নিয়মের শব্দের সাথে মানানসই নয়।


0

বাশ / জেনिटी 38 সংক্ষিপ্ত সংস্করণ, 68 টি দীর্ঘ সংস্করণ

read c o d e
zenity --scale --value=$d --max-value=497 --text=uptime

সংক্ষিপ্ত সংস্করণটি $ d এর পরে শেষ হয়, তত বেশি সময় বিবেচনায় নেওয়া হয় যে আমরা একটি সর্বোচ্চ-মূল্য জানি এবং সহায়ক পাঠ্যটি পছন্দ করি:

আপটাইম ডিসপ্লে হিসাবে স্ক্রিনশট জেনিটি



0

অটোহটকি , 39 বাইট

d:=A_TickCount//=8.64e+7
Send 8{= %d%}D

কোনও ইনপুট নেই। সক্রিয় উইন্ডোতে ফলাফল পাঠানো হয়। কম্পিউটারটি রিবুট হওয়ার পর থেকেই
বিল্ট- A_TickCountইনটি মিলিসেকেন্ডের সংখ্যা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.