একটি "<<(…)" পুনঃনির্দেশের অর্থ কী?


32

আমি দেখেছি যে rvm (রুবি সংস্করণ পরিচালক) নিম্নলিখিত কমান্ডটি ব্যবহার করে ইনস্টল করা আছে:

bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )

সুতরাং আমি যেমন বুঝতে পেরেছি আমরা স্ক্রিপ্টের সামগ্রী পেয়েছি < <এবং এটি বাশে পৌঁছে দিচ্ছি (আমি বিশ্বাস করি এবং <<একই জিনিস?) আমি < <অংশটি সম্পর্কে আগ্রহী , নেটে নিম্নলিখিত বিবরণটি পেয়েছি:

<< টোকেন দেখা না হওয়া অবধি প্রোগ্রামটির জন্য বর্তমান ইনপুট স্ট্রিমটি STDIN হিসাবে ব্যবহার করে use

এটি আমার পক্ষে একরকম পরিষ্কার নয়, কেউ কি উদাহরণ তৈরি করতে পারেন বা আরও সহজ উপায়ে ব্যাখ্যা করতে পারেন?

উত্তর:


40

না, < <এবং <<একই জিনিস নয়।

প্রথমটি সিনট্যাক্সের <প্রথম চরিত্রের সাথে মিলিত সাধারণ পুনঃনির্দেশ অক্ষর দ্বারা গঠিত <(command)। এটি এমন একটি kshকনস্ট্রাক্ট (এটিতেও পাওয়া যায় bashএবং zsh) প্রক্রিয়া বিকল্প হিসাবে পরিচিত যা আউটপুট নেয় commandএবং একটি ফাইল সরবরাহ করে যার নাম পাইপের অন্য প্রান্তটি বোঝায় command

অন্য কথায় আপনি < <(command)হিসাবে ভাবতে পারেন < file, যেখানে ফাইলের আউটপুট থাকে command


5
আমি এই কমান্ডটি সম্পর্কে কয়েকদিন আগে জেনেছি, এটি একটি খুব দরকারী কমান্ড। : যা আপনি এই সঙ্গে কাজ করতে পারেন শুধুমাত্র আপনার কল্পনা দ্বারা সীমাবদ্ধ করা হয়: এই কমান্ড যেমন আপনি শুধুমাত্র লুকানো ফাইলের তালিকা দেয়diff <(ls) <(ls -a)
খাজা মিনহাজউদ্দীন

1
এই বাক্য গঠনটি প্রকৃতপক্ষে বেশ কার্যকর হতে পারে তবে স্টোনরেনের নির্দিষ্ট ক্ষেত্রে এটি কোনও সাধারণ পাইপের তুলনায় কোনও অতিরিক্ত মান সরবরাহ করে বলে মনে হয় না।
jlliagre

1
উপরের সিনট্যাক্সে এটি সাহায্য করে না। তবে আপনি যদি এটি সামান্য পরিবর্তন করেন তবে এটি আরও ভাল: bash <(curl ...)পরিবর্তে bash < <(curl ...)STDIN চুরি করে না, সুতরাং প্রম্প্টগুলির উত্তর দিতে এবং স্ক্রিপ্টে ইনপুট সরবরাহ করতে আপনি মুক্ত।
টাইলার

অকারণে প্রথমে ফাইলগুলিতে $ ভেরিয়েবলগুলি লেখার পরিবর্তে, কমান্ডগুলিতে একাধিক $ ভেরিয়েবলগুলি সরাসরি প্রেরণের জন্য <() ব্যবহার করা দুর্দান্ত বিকল্প বলে মনে হয়। পরিবর্তন <(প্রতিধ্বনি "$ পাঠ্য 1") <(প্রতিধ্বনি "$ text2") stackoverflow.com/questions/13437104/...
Sepero

18

এটি সহজতর করার একটি বিভক্ত পদ্ধতি:

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