পাইপিং একাধিক কমান্ড


8

আমি টেক্সটএডিতে নিম্নলিখিত কমান্ড এবং পাইপ স্টাউট চালাতে চাই:

pmset -g; echo; pmset -g assertions | open -f -a TextEdit 

এটি কাজ করে না, এটি কেবল পরেগুলি সম্পাদন করে:

কিভাবে?

উত্তর:


11

আহ, bashপুনঃনির্দেশ: -

( pmset -g && echo && pmset -g assertions ) | open -f -a TextEdit

এটি আপনার কমান্ডগুলিকে &&একটি সাব-শেলটিতে (যা এটি এর মধ্যে আবৃত ()করে) একক ব্যাশ কমান্ড হিসাবে চালায় (যা এটি এটি আবৃত করে) এবং আপনার জন্য সাব-শেলের আউটপুটটিকে পাঠ্য সম্পাদনাতে পুনর্নির্দেশ করে। আপনি টেকনিক্যালি ব্যবহার করতে হবে না &&পরিবর্তে ;কিন্তু এটিকে পরিবর্তন করা প্রভাব যে যদি কমান্ড কোনো ব্যর্থ এটা যে সময়ে সমগ্র শৃঙ্খল বন্ধ হবে।

দ্রষ্টব্য: আপনার উদাহরণে সমস্ত কমান্ড চালিত হচ্ছে (যেমন আপনি কেবল pmset -g; echo; pmset -g assertionsকমান্ড লাইনে চালিয়ে প্রমাণ করতে পারেন ), কেবলমাত্র আপনি পাইপটি কেবল সর্বশেষটিতে প্রয়োগ করছেন। এজন্য এটিকে একটি সাব-শেইলে চালানো দরকার।

দ্রষ্টব্য: আপনি |অক্ষরটি প্রতিস্থাপন করতে >এবং আপনার ইচ্ছাতে কোনও ফাইলে আউটপুট প্রেরণ করতে পারেন।


এই ছোট্ট টিপটি অবিশ্বাস্যরূপে সহায়ক হয়েছে। কমান্ড / বিশেষ অক্ষরগুলিতে অন্তর্নির্মিত অন্তর্দৃষ্টিগুলি খুব কমই ডকুমেন্টেড হয়। আবার আপনাকে ধন্যবাদ.
এনজেবুট

4

() কমান্ডগুলি একক প্রক্রিয়াতে একত্রিত করে স্টাডাউটের প্রতি সম্মতি জানায়:

(pmset -g; echo; pmset -g assertions) | open -f -a TextEdit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.