হ্যাঁ $ (হ্যাঁ হ্যাঁ) কী করে?


23

আশ্চর্য কি ব্যবহার yesকমান্ড হতে পারে, আমি উপর পদস্খলিত এই মন্তব্যটি , এবং চালানো করার চেষ্টা

yes $(yes yes)

আমি যা বুঝতে পারি তা থেকে, এটি কেবল একটি অসীম অনুক্রমের মুদ্রণ করা উচিত yes, তবে পরিবর্তে এটি কিছু না করে এবং কয়েক সেকেন্ড পরে আমার গ্রাফিকাল টার্মিনালটিকে ক্র্যাশ করে। (আমি যদি এটি টিটি 1 তে কার্যকর করি তবে কিছুক্ষণ পরে লগইন প্রম্পটটি দেখতে পাচ্ছি))

এখানে কি হচ্ছে?


2
আমি কোনও বিশেষজ্ঞ নই, তবে এটি হতে পারে প্রথম অনুরোধ অসীম সময় মুদ্রণের চেষ্টা করছে। (বা যুক্তিটি খুব দীর্ঘ হতে পারে))
শ্রুতিজি

5
@ মাসজি যুক্তি তালিকা কখনই জনবহুল হয় না, কারণ yesকখনই ফিরে আসে না।
ক্রিস ডাউন

@strugee ব্যবহার করে আপনি "অনন্ত অসীম বার" পেতে পারেন xargs: yes yes | xargs -P 0 yes(অথবা ছাড়া -P 0একক প্রক্রিয়া অনন্ত জন্য)
কাইলি স্ট্র্যান্ড

উত্তর:


25

এটি চালানোর জন্য ইতিমধ্যে যথেষ্ট হওয়া উচিত

 echo $(yes yes)

$(...)ভেতরের কমান্ড পর্যন্ত এটি শেষ যেমনটি হয় তার সমস্ত আউটপুট চালায়। - এখন যেহেতু yesদীর্ঘ সময় চলে এবং প্রচুর আউটপুট উত্পন্ন করে, বাশ শেষ পর্যন্ত স্মৃতি এবং ক্রাশ থেকে সরে যাবে।


6

আপনার শেলটি বন্ধ করে দেওয়া ত্রুটির জন্য বার্তাটি দেখতে, আপনাকে একটি সাব-শেল চালানো দরকার।

$ sh
$ kill -9 $$
Killed
$

$ sh
$ yes $(yes yes)
sh: xrealloc: cannot allocate 18446744071562067968 bytes
$

1
16 মিলিয়ন গিগাবাইট, তাই না? গর্ডন মুর এক কোণে লুকিয়ে আছেন, "আচ্ছা ... আমি বলতে চাইছি, এখনও বেশিরভাগ ..."
এফআরডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.