আপনি কীভাবে 2> & 1 টি পুনর্নির্দেশের [বন্ধ] সিনট্যাক্সটির কথা মনে করেন?


12

আপনার কি স্মৃতিচারণ বা সিস্টেম রয়েছে? বছরের পর বছর ধরে এটি আমাকে বিরক্ত করেছে আমাকে সবসময় এটি সন্ধান করতে হবে

উত্তর:


19

আপনি যদি একজন সি প্রোগ্রামার &1হন তবে আপনি "1 এর ঠিকানা" হিসাবে ভাবতে পারেন তাই 2>&1"ফাইল বিবরণী # 2 একই জায়গায় # 1" তে পুনর্নির্দেশ করুন reads


জানি না এটি সাহায্য করে কিনা ... স্মৃতিবিদ্যাগুলি বেশ ব্যক্তিগত উপাদান।
— দীর্ঘকাল

+12 এটি যা হচ্ছে তার সঠিক বর্ণনা।
— স্টাফেন চেজেলাস

1
আমি অবাক হয়েছি যে এটি কীভাবে আবিষ্কার হয়েছিল ("1 এর ঠিকানা") যখন এটি আবিষ্কার হয়েছিল? যেহেতু কিছু লোক আবিষ্কার করা হয়েছিল তখন সি ভাষা এবং
— ইউএনআইএক্স

1
পরিবর্তে আমি এটি ব্যবহার করা শুরু করতে পারি;)
— সোনারলকস

3

"টু টু ওয়ান" ("থেকে" সত্তা >) আমার কাছে "দুই এবং একজনের" চেয়ে বেশি যৌক্তিক ধারণা তৈরি করে, যা আমি সাধারণত এটির সাথে বিভ্রান্ত করতে পারি। যদি আপনি "এবং একটি" কে একক বিশেষ্য (একটি স্থান) হিসাবে বিবেচনা করেন তবে এটি প্রসঙ্গে ব্যাকরণগত ধারণাও তৈরি করে, যা "দুই এবং এক" এর সাথে করা আরও কঠিন - আপনাকে "এক" কে একটি একক হিসাবে বিবেচনা করতে হবে বিশেষ্য, এবং এটি এখনও প্রাসঙ্গিক ধারণা তৈরি করতে পারে না।


2
আমি বুঝতে পারি না
— ম্যাট

2

মনমোহনীয় নয়, তবে আমি এটি নীচে পড়লাম:

0স্টিডিন হয়। 1stdout হয়। 2stderr হয়। >ভিতরে into <এর বাইরে &ফাইল বিবরণকারী (কিছু শেলের মধ্যে)।

2>&1
2      >    &               1
stderr into file descriptor 1

redirect stderr into stdout

পুনর্নির্দেশের আগে আপনি যদি কোনও ফাইল বর্ণনাকারীর সাথে গণ্ডগোল করে থাকেন তবে এটি পরিবর্তন হতে পারে ...

2>somefile 1>&2
2      >    somefile     1      >    &2
stderr into somefile and stdout into file descriptor 2

redirect stderr into somefile and stdout into somefile. 

2

আপনি যখন লিখবেন 2>&1, আপনি "স্ট্যান্ডার্ড ত্রুটিটি স্ট্যান্ডার্ড আউটপুটে যায়" বলছেন।

আসুন এটি ভেঙে দিন।

প্রথমে আপনি মুখস্থ করতে চান যে স্ট্যান্ডার্ড ত্রুটি 2এবং মান আউটপুট 1।

সুতরাং আপনি পেয়েছেন 2কিছু কিছু 1।

"যায়" তে লেখা আছে >।

সুতরাং আপনি পেয়েছেন 2>কিছু 1।

2>filenameমানে প্রমিত ত্রুটি প্রেরণ করুন filename। তবে আপনি এটি কল করা কোনও ফাইলে পাঠাতে চান না 1। আপনি অন্য কিছু চান: ইতিমধ্যে খোলা ফাইলের সংখ্যা। এটা কি &জন্য হয়।

তাই 2>&1।

আপনি যেমন একটি অ্যাসাইনমেন্ট করছিলেন, আপনি এটির মতো ভাবতেও পারেন, যেখানে >সমানটি সমান এবং সমানটির &মতো $, তুলনা করুন:

f=$1
2>&1

একাধিক পুনঃনির্দেশ সহ একটি কমান্ড লাইনটি বুঝতে, গুরুত্বপূর্ণ জিনিসটি হ'ল পুনর্নির্দেশগুলি বাম থেকে ডানদিকে সম্পন্ন করা হয়। সে সম্পর্কে আরও তথ্যের জন্য পুনর্নির্দেশের আদেশ দেখুন ।


0

আমার মনে আছে এটি সর্বদা 2 -> ১ স্টারডার টু স্টডআউট।

মাঝের অংশটি সর্বদা শক্ত এবং আমি সর্বদা তাড়াতাড়ি রেখেছিলাম, যতক্ষণ না আমি মনে করি যে প্রথমটি তীক্ষ্ণ চরিত্রের আসে >, তারপরে যে চরিত্রটি আমি বাস্তব জীবনে লিখতে পারি না &।

তাই কখনই না 2&>1, সর্বদা2>&1


0

আপনি যদি বুঝতে পারেন যে এফডি 2 টি এসটিডিআরআর, আপনি ভাবতে পারেন, "ওহ, এবং যেখানেই আমি এসটিডিআউট (এফডি 1) প্রেরণ করি সেখানে এসটিডিআরআর ক্যাপচার করুন"।


0

আমার সহকর্মীরা এবং আমি সাধারণত বলে থাকি "দুটি একজনের চেয়ে বড়", কারণ আমাদের বেশিরভাগ লোকেরা সবসময় মনে রাখে না যে stderrএটি ফাইল বর্ণনাকারী 2এবং stdoutএটি 1(বিশেষত যারা ইউনিক্স / লিনাক্সে নতুন), তাই পুনর্নির্দেশ সম্পর্কে অন্যান্য স্মৃতিবিজ্ঞানগুলি stderrআসলে কাজ করে না । কেবল সমস্যাটি হ'ল, আপনাকে এখনও মনে রাখতে হবে যে এম্পারস্যান্ডটি কোথায় যায়!

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