bash - শেলের মধ্যে, "2> & 1" এর অর্থ কী?




shell unix (10)

ইউনিক্স শেলের মধ্যে, যদি আমি আরও ম্যানিপুলেশনয়ের জন্য stdout স্ট্রীমে stderr এবং stdout একত্রিত করতে চাই, তবে আমার কমান্ডের শেষে আমি নিম্নলিখিতটি যোগ করতে পারি:

2>&1

সুতরাং, যদি আমি g++ থেকে আউটপুটতে head ব্যবহার করতে চাই, আমি এমন কিছু করতে পারি:

g++ lots_of_errors 2>&1 | head

তাই আমি শুধুমাত্র প্রথম কয়েকটি ত্রুটি দেখতে পারেন।

আমি সর্বদা এই স্মরণে সমস্যায় পড়েছি, এবং আমাকে ক্রমাগত এটি দেখতে হবে, এবং এটি মূলত কারণ আমি এই বিশেষ কৌশলটির সিনট্যাক্স সম্পূর্ণরূপে বুঝতে পারি না।

কেউ কি এটি ভেঙ্গে দিতে পারে এবং চরিত্রের দ্বারা চরিত্রটিকে ব্যাখ্যা করতে পারে 2>&1 মানে?


পুনঃনির্দেশনা ইনপুট

ইনপুট পুনঃনির্দেশকরণ ফাইলটি যার নামটি ফাইল বর্ণনাকারীর এন, অথবা স্ট্যান্ডার্ড ইনপুট (ফাইল বর্ণনাকারী 0) পড়ার জন্য শব্দটির সম্প্রসারণের ফলে স্থাপিত হয়, যদি n নির্দিষ্ট না হয়।

ইনপুট পুনঃনির্দেশ করার জন্য সাধারণ বিন্যাস:

[n]<word

পুনঃনির্দেশ আউটপুট

আউটপুট পুনঃনির্দেশকরণ ফাইলটি যার নাম ফাইল সম্প্রসারণকারী এন, অথবা স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) -এ লেখার জন্য খোলা যেতে পারে তার ফলে ফাইলটির নাম উল্লেখ করে। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়; যদি এটি অস্তিত্ব থাকে তবে এটি শূন্য আকারে কাটানো হয়।

আউটপুট পুনঃনির্দেশ করার জন্য সাধারণ বিন্যাস হল:

[n]>word

ফাইল বর্ণনাকারী মুভিং

পুনঃনির্দেশ অপারেটর,

[n]<&digit-

ফাইল বর্ণনাকারীর ডিজিটটি ডিস্ক্রিপ্টর এন, অথবা স্ট্যান্ডার্ড ইনপুট (ফাইল বর্ণনাকারী 0) ফাইল করতে প্রেরণ করে, যদি n নির্দিষ্ট না হয়। এন নকল করা হচ্ছে পরে অঙ্ক বন্ধ করা হয়।

একইভাবে, পুনঃনির্দেশ অপারেটর

[n]>&digit-

ফাইল বর্ণনাকারী ডিজিটটি ডিস্ক্রিপ্টর এন, অথবা আদর্শ আউটপুট (ফাইল বর্ণনাকারী 1) ফাইল করতে প্রেরণ করে, যদি n নির্দিষ্ট না হয়।

সূত্র:

man bash

redirection বিভাগে সনাক্ত করতে টাইপ /^REDIRECT , এবং আরও জানুন ...

এখানে একটি অনলাইন সংস্করণ রয়েছে: 3.6 পুনঃনির্দেশনা

দ্রষ্টব্য:

অনেক সময়, man লিনাক্স শিখতে শক্তিশালী হাতিয়ার ছিল।


পুনর্নির্দেশ সম্পর্কে কিছু কৌশল

এই সম্পর্কে কিছু সিনট্যাক্স বিশিষ্টতা গুরুত্বপূর্ণ আচরণ থাকতে পারে। পুনর্নির্মাণ, STDERR , STDERR , এবং আর্গুমেন্ট অর্ডার সম্পর্কে কিছু সামান্য নমুনা আছে।

1 - ওভাররাইটিং বা যোগদান?

প্রতীক > অর্থ পুনঃনির্দেশনা

  • > মানে একটি সম্পূর্ণ সম্পন্ন ফাইল হিসাবে প্রেরণ করুন , বিদ্যমান থাকলে ওভাররাইটিং লক্ষ্য ( # 3 পরে noclobber ব্যাশ বৈশিষ্ট্যটি দেখুন)।
  • >> অস্তিত্ব থাকলে টার্গেট যোগ করতে ছাড়াও পাঠাতে মানে।

যে কোন ক্ষেত্রে, যদি তারা বিদ্যমান না হয় তবে ফাইল তৈরি করা হবে।

2 - শেল কমান্ড লাইন অর্ডার নির্ভরশীল !!

এটি পরীক্ষা করার জন্য, আমাদের একটি সহজ কমান্ড যা উভয় আউটপুটগুলিতে কিছু পাঠাতে হবে :

$ ls -ld /tmp /tnt
ls: cannot access /tnt: No such file or directory
drwxrwxrwt 118 root root 196608 Jan  7 11:49 /tmp

$ ls -ld /tmp /tnt >/dev/null
ls: cannot access /tnt: No such file or directory

$ ls -ld /tmp /tnt 2>/dev/null
drwxrwxrwt 118 root root 196608 Jan  7 11:49 /tmp

(আশা করি আপনার নামের একটি ডিরেক্টরি নেই /tnt অবশ্যই;)। আচ্ছা, আমরা এটা আছে !!

সুতরাং, আসুন দেখি:

$ ls -ld /tmp /tnt >/dev/null
ls: cannot access /tnt: No such file or directory

$ ls -ld /tmp /tnt >/dev/null 2>&1

$ ls -ld /tmp /tnt 2>&1 >/dev/null
ls: cannot access /tnt: No such file or directory

শেষ কমান্ড লাইনটি STDERR কে কনসোলে ডাম্প করে, এবং এটি প্রত্যাশিত আচরণ বলে মনে হচ্ছে না ... কিন্তু ...

আপনি যদি একটি আউটপুট, অন্য বা উভয় সম্পর্কে কিছু পোস্ট ফিল্টারিং করতে চান:

$ ls -ld /tmp /tnt | sed 's/^.*$/<-- & --->/'
ls: cannot access /tnt: No such file or directory
<-- drwxrwxrwt 118 root root 196608 Jan  7 12:02 /tmp --->

$ ls -ld /tmp /tnt 2>&1 | sed 's/^.*$/<-- & --->/'
<-- ls: cannot access /tnt: No such file or directory --->
<-- drwxrwxrwt 118 root root 196608 Jan  7 12:02 /tmp --->

$ ls -ld /tmp /tnt >/dev/null | sed 's/^.*$/<-- & --->/'
ls: cannot access /tnt: No such file or directory

$ ls -ld /tmp /tnt >/dev/null 2>&1 | sed 's/^.*$/<-- & --->/'

$ ls -ld /tmp /tnt 2>&1 >/dev/null | sed 's/^.*$/<-- & --->/'
<-- ls: cannot access /tnt: No such file or directory --->

লক্ষ্য করুন যে এই অনুচ্ছেদের শেষ কমান্ড লাইনটি পূর্ববর্তী অনুচ্ছেদে ঠিক একই রকম, যেখানে আমি লিখেছি মনে হয় প্রত্যাশিত আচরণ (তাই এটি একটি প্রত্যাশিত আচরণও হতে পারে) বলে মনে হচ্ছে না

ওয়েল, উভয় আউটপুট উপর বিভিন্ন অপারেশন করার জন্য, পুনঃনির্দেশ সম্পর্কে একটু কৌশল আছে:

$ ( ls -ld /tmp /tnt | sed 's/^/O: /' >&9 ) 9>&2  2>&1  | sed 's/^/E: /'
O: drwxrwxrwt 118 root root 196608 Jan  7 12:13 /tmp
E: ls: cannot access /tnt: No such file or directory

নোটা: &9 বর্ণনাকারী স্বতঃস্ফূর্তভাবে ঘটবে ) 9>&2

সংযোজন: নাটা! bash ( >4.0 ) এর নতুন সংস্করণের সাথে এই ধরনের জিনিসগুলি করার জন্য একটি নতুন বৈশিষ্ট্য এবং আরো সেক্সি সিনট্যাক্স রয়েছে:

$ ls -ld /tmp /tnt 2> >(sed 's/^/E: /') > >(sed 's/^/O: /')
O: drwxrwxrwt 17 root root 28672 Nov  5 23:00 /tmp
E: ls: cannot access /tnt: No such file or directory

এবং অবশেষে যেমন একটি cascading আউটপুট বিন্যাস জন্য:

$ ((ls -ld /tmp /tnt |sed 's/^/O: /' >&9 ) 2>&1 |sed 's/^/E: /') 9>&1| cat -n
     1  O: drwxrwxrwt 118 root root 196608 Jan  7 12:29 /tmp
     2  E: ls: cannot access /tnt: No such file or directory

সংযোজন: নাটা! উভয় উপায়ে, একই নতুন সিনট্যাক্স:

$ cat -n <(ls -ld /tmp /tnt 2> >(sed 's/^/E: /') > >(sed 's/^/O: /'))
     1  O: drwxrwxrwt 17 root root 28672 Nov  5 23:00 /tmp
     2  E: ls: cannot access /tnt: No such file or directory

যেখানে STDERR একটি নির্দিষ্ট ফিল্টারের মাধ্যমে যেতে পারে, STDERR এবং অবশেষে উভয় আউটপুট একত্রিত হয় তৃতীয় কমান্ড ফিল্টারের মাধ্যমে।

3 - noclobber বিকল্প এবং >| সম্পর্কে একটি শব্দ বাক্য গঠন

যে overwriting সম্পর্কে:

যদিও set -o noclobber কোন বিদ্যমান ফাইলকে ওভাররাইট করার জন্য bash নির্দেশ দেয়, >| সিনট্যাক্স আপনি এই সীমাবদ্ধতা মাধ্যমে পাস করা যাক:

$ testfile=$(mktemp /tmp/testNoClobberDate-XXXXXX)

$ date > $testfile ; cat $testfile
Mon Jan  7 13:18:15 CET 2013

$ date > $testfile ; cat $testfile
Mon Jan  7 13:18:19 CET 2013

$ date > $testfile ; cat $testfile
Mon Jan  7 13:18:21 CET 2013

ফাইলটি প্রতিবার ওভাররাইট করা হয়, এখনই:

$ set -o noclobber

$ date > $testfile ; cat $testfile
bash: /tmp/testNoClobberDate-WW1xi9: cannot overwrite existing file
Mon Jan  7 13:18:21 CET 2013

$ date > $testfile ; cat $testfile
bash: /tmp/testNoClobberDate-WW1xi9: cannot overwrite existing file
Mon Jan  7 13:18:21 CET 2013

>| দিয়ে পাস :

$ date >| $testfile ; cat $testfile
Mon Jan  7 13:18:58 CET 2013

$ date >| $testfile ; cat $testfile
Mon Jan  7 13:19:01 CET 2013

এই অপশনটি অবহেলা করা এবং / অথবা ইতিমধ্যে সেট করা হলে অনুসন্ধান।

$ set -o | grep noclobber
noclobber           on

$ set +o noclobber

$ set -o | grep noclobber
noclobber           off

$ date > $testfile ; cat $testfile
Mon Jan  7 13:24:27 CET 2013

$ rm $testfile

4 - শেষ কৌশল এবং আরো ...

প্রদত্ত কমান্ড থেকে উভয় আউটপুট পুনঃনির্দেশিত করার জন্য, আমরা দেখতে পারি যে একটি সঠিক সিনট্যাক্স হতে পারে:

$ ls -ld /tmp /tnt >/dev/null 2>&1

এই বিশেষ ক্ষেত্রে, একটি শর্টকাট সিনট্যাক্স রয়েছে: &> ... বা >&

$ ls -ld /tmp /tnt &>/dev/null

$ ls -ld /tmp /tnt >&/dev/null

নোটা: যদি 2>&1 বিদ্যমান থাকে, 1>&2 একটি সঠিক সিনট্যাক্স হয়:

$ ls -ld /tmp /tnt 2>/dev/null 1>&2

4 বি- এখন, আমি আপনাকে এই সম্পর্কে চিন্তা করতে হবে:

$ ls -ld /tmp /tnt 2>&1 1>&2  | sed -e s/^/++/
++/bin/ls: cannot access /tnt: No such file or directory
++drwxrwxrwt 193 root root 196608 Feb  9 11:08 /tmp/

$ ls -ld /tmp /tnt 1>&2 2>&1  | sed -e s/^/++/
/bin/ls: cannot access /tnt: No such file or directory
drwxrwxrwt 193 root root 196608 Feb  9 11:08 /tmp/

4c- আপনি আরও তথ্যের আগ্রহী হন

আপনি আঘাত করে সূক্ষ্ম ম্যানুয়াল পড়তে পারে:

man -Len -Pless\ +/^REDIRECTION bash

একটি bash কনসোল মধ্যে ;-)


আপনার প্রশ্নের উত্তর দিতে: এটি কোন ত্রুটি আউটপুট নেয় (সাধারণত stderr এ পাঠানো হয়) এবং এটি স্ট্যান্ডার্ড আউটপুট (stdout) এ লিখে।

এটি সহায়ক, উদাহরণস্বরূপ 'আরও' যখন আপনি সমস্ত আউটপুটের জন্য পেজিংয়ের প্রয়োজন। Stderr মধ্যে মুদ্রণ ব্যবহার তথ্য মত কিছু প্রোগ্রাম।

আপনাকে মনে রাখতে সাহায্য করুন

  • 1 = স্ট্যান্ডার্ড আউটপুট (যেখানে প্রোগ্রাম স্বাভাবিক আউটপুট প্রিন্ট)
  • 2 = স্ট্যান্ডার্ড ত্রুটি (যেখানে প্রোগ্রাম মুদ্রণ ত্রুটি)

"2> এবং 1" কেবল stderr এ পাঠানো সমস্ত কিছু, পরিবর্তে stdout এ নির্দেশ করে।

আমি এই বিষয় সম্পূর্ণ বিস্তারিত আবৃত যেখানে ত্রুটি পুনর্নির্দেশ এই পোস্ট পড়া সুপারিশ।


আমি পুনঃনির্দেশনার এই উজ্জ্বল পোস্ট খুঁজে পেয়েছি: পুনর্নির্দেশ সম্পর্কে সব

একটি ফাইল থেকে স্ট্যান্ডার্ড আউটপুট এবং মান ত্রুটি উভয় পুনঃনির্দেশ

$ কমান্ড &> ফাইল

আউটপুট স্ট্রিমগুলি - stdout এবং stderr - কমান্ড থেকে ফাইল উভয় পুনঃনির্দেশিত করতে এই এক-মাছচালক &> অপারেটর ব্যবহার করে। দ্রুত একই গন্তব্যে উভয় প্রবাহ পুনঃনির্দেশিত করার জন্য এটি বাশের শর্টকাট।

ব্যাশটি উভয় প্রবাহগুলিকে পুনঃনির্দেশিত করার পরে ফাইল বর্ণনাকারী টেবিল কেমন দেখায়:

আপনি দেখতে পারেন, stdout এবং stderr উভয় এখন file নির্দেশ করে। তাই stdout এবং stderr লিখিত কিছু file লিখিত হয়।

একই গন্তব্য উভয় প্রবাহ পুনঃনির্দেশিত করার বিভিন্ন উপায় আছে। আপনি একে অপরের পর প্রতিটি প্রবাহ একত্রিত করতে পারেন:

$ কমান্ড> ফাইল 2> এবং 1

এটি একটি ফাইলের উভয় প্রবাহগুলিকে পুনঃনির্দেশিত করার জন্য আরো সাধারণ উপায়। প্রথম stdout ফাইল থেকে পুনঃনির্দেশিত হয়, এবং তারপর stderr stdout হিসাবে একই হতে সদৃশ হয়। সুতরাং উভয় প্রবাহ file নির্দেশ দিকে শেষ।

যখন বাশ বেশ কয়েকটি পুনঃনির্দেশ দেখায় তখন এটি বাম থেকে ডানে প্রসেস করে। আসুন ধাপে ধাপে ধাপে দেখি কিভাবে তা ঘটে। কোনও কমান্ড চালানোর আগে, বাশের ফাইল ডিস্ক্রিপ্টর টেবিলটি এই রকম দেখাচ্ছে:

এখন Bash প্রথম পুনর্নির্দেশ> ফাইল প্রক্রিয়া করে। আমরা আগে এটি দেখেছি এবং এটি ফাইলের স্টডাউট পয়েন্ট তৈরি করে:

পরবর্তী বাশ দ্বিতীয় পুনঃনির্দেশনা দেখায় 2> & 1। আমরা আগে এই পুনঃনির্দেশনা দেখা যায় না। এটি ফাইল ডিস্ক্রিপ্টর 1 এর একটি অনুলিপি ফাইল বর্ণনাকারী 2কে অনুলিপি করে এবং আমরা এটি পেতে পারি:

উভয় স্ট্রিম ফাইল থেকে পুনঃনির্দেশিত করা হয়েছে।

তবে এখানে সতর্ক থাকুন! লেখা

কমান্ড> ফাইল 2> এবং 1

লেখার মতো একই নয়:

$ কমান্ড 2> & 1> ফাইল

রেশমির আদেশ বাশে! এই কমান্ড শুধুমাত্র ফাইলের মান আউটপুট পুনঃনির্দেশিত। Stderr এখনও টার্মিনাল প্রিন্ট করা হবে। কেন যে ঘটতে বুঝতে, আবার পদক্ষেপ মাধ্যমে চলুন। তাই কমান্ডটি চালানোর আগে, ফাইল ডিস্ক্রিপ্টর টেবিলটি এই রকম দেখাচ্ছে:

এখন বশ ডান থেকে বামে পুনঃনির্দেশ প্রক্রিয়া। এটি প্রথমে 2> & 1 দেখায় যাতে এটি stdout এ stderr ডুপ্লিকেট করে। ফাইল বর্ণনাকারী টেবিল হয়ে যায়:

এখন Bash দ্বিতীয় পুনঃনির্দেশ দেখায়, >file , এবং এটি stdout ফাইলটিতে পুনঃনির্দেশিত করে:

আপনি কি এখানে দেখুন কি? Stdout এখন ফাইল নির্দেশ করে, কিন্তু stderr এখনও টার্মিনাল নির্দেশ করে! Stderr লিখিত পায় যে সবকিছু এখনও পর্দায় প্রিন্ট আউট! তাই খুব, খুব পুনঃনির্দেশের আদেশ সঙ্গে সতর্ক থাকুন!

এছাড়াও নোট যে লিখুন, বাশ

$ কমান্ড &> ফাইল

ঠিক একই হিসাবে:

$ কমান্ড> & ফাইল


এই ঠিক যেমন stdout বা টার্মিনাল ত্রুটি ক্ষণস্থায়ী হয়।

অর্থাৎ, cmd কমান্ড নয়:

$cmd 2>filename
cat filename

command not found

ত্রুটি ফাইলটি এইভাবে পাঠানো হয়:

2>&1

স্ট্যান্ডার্ড ত্রুটি টার্মিনালে পাঠানো হয়।


একটি প্রোগ্রামার এর দৃষ্টিকোণ থেকে, এটি সঠিকভাবে এই মানে:

dup2(1, 2);

ম্যান পৃষ্ঠা দেখুন

বোঝা যায় যে 2>&1 একটি অনুলিপিও ব্যাখ্যা করে কেন ...

command >file 2>&1

... হিসাবে একই নয় ...

command 2>&1 >file

প্রথমটি উভয় প্রবাহকে file প্রেরণ করবে, দ্বিতীয়টি stdout ত্রুটিগুলি এবং সাধারণ আউটপুট file পাঠাবে।


ফাইল বর্ণনাকারী 1 স্ট্যান্ডার্ড আউটপুট ( stdout )।
ফাইল বর্ণনাকারী 2 স্ট্যান্ডার্ড ত্রুটি ( stderr )।

এখানে এই গঠনটি মনে রাখার একটি উপায় এখানে রয়েছে (যদিও এটি পুরোপুরি সঠিক নয়): প্রথমে, 2>1 stderr stdout পুনঃনির্দেশ করার জন্য একটি ভাল উপায় দেখতে পারে। যাইহোক, এটি আসলে " 1 নামে একটি ফাইলে পুনঃনির্দেশিত stderr " হিসাবে ব্যাখ্যা করা হবে। & নির্দেশ করে যে কোনও ফাইল বর্ণনাকারী এবং কোনও ফাইলের নাম নয়। সুতরাং গঠন হয়ে যায়: 2>&1


মানুষ, সবসময় পুনঃনির্দেশ লক্ষ্যের বর্তমান অবস্থান সম্পর্কে প্যাক্সডিবলোর ইঙ্গিত মনে রাখুন ... এটি গুরুত্বপূর্ণ।

আমার ব্যক্তিগত স্মারক 2>&1 অপারেটর এটি হল:

  • ভাবুন 'and' অর্থ 'and' বা 'add' (চরিত্র একটি ampers - এবং , তাই না?)
  • সুতরাং এটি হয়ে যায়: 'পুনঃনির্দেশ 2 (stderr) যেখানে 1 (স্টডআউট) ইতিমধ্যে / বর্তমানে আছে এবং উভয় স্ট্রিম যুক্ত করুন'

একই ঘন ঘন ব্যবহৃত অন্যান্য পুনরাবৃত্তি জন্য একই কাজ, 1>&2 :

  • চিন্তা & অর্থ and add ... (আপনি ampersand সম্পর্কে ধারণা পেতে, হ্যাঁ?)
  • সুতরাং এটি হয়ে যায়: 'পুনঃনির্দেশ 1 (স্টডআউট) যেখানে 2 (stderr) ইতিমধ্যে / বর্তমানে আছে এবং উভয় স্ট্রীম যুক্ত করুন'

এবং সর্বদা মনে রাখবেন: আপনি ডান থেকে বাম ( না বাম থেকে ডান) থেকে, 'শেষ থেকে' পুনঃনির্দেশনার শিকলগুলি পড়তে হবে।


সংখ্যা ফাইল বর্ণনাকারী (fd) পড়ুন।

  • জিরো stdin
  • এক stdout
  • দুই stderr

2>&1 ফিড 2 থেকে 1 পুনঃনির্দেশিত করে।

প্রোগ্রামটি ব্যবহার করে যদি এটি কোনও ফাইল বর্ণনাকারীর জন্য কাজ করে।

আপনি যদি তাদের ভুলে যান তবে /usr/include/unistd.h এ দেখতে পারেন:

/* Standard file descriptors.  */
#define STDIN_FILENO    0   /* Standard input.  */
#define STDOUT_FILENO   1   /* Standard output.  */
#define STDERR_FILENO   2   /* Standard error output.  */

যে বলে আমি সি সরঞ্জামগুলি লিখেছি যা কাস্টম লগিংয়ের জন্য নন-স্ট্যান্ডার্ড ফাইল বর্ণনাকারীগুলিকে ব্যবহার করে, যাতে আপনি এটি কোনও ফাইল বা কিছুতে পুনঃনির্দেশ না করা পর্যন্ত এটি দেখতে না পান।


2>&1 একটি পক্সিক শেল গঠন। এখানে একটি ভাঙ্গন, টোকেন দ্বারা টোকেন:

2 : " স্ট্যান্ডার্ড ত্রুটি " আউটপুট ফাইল বর্ণনাকারী।

>& : একটি আউটপুট ফাইল বর্ণনাকারী অপারেটর সদৃশ ( আউটপুট পুনঃনির্দেশ অপারেটরের একটি রূপান্তর > )। দেওয়া [x]>&[y] , x দ্বারা চিহ্নিত ফাইল বর্ণনাকারীটি আউটপুট ফাইল বর্ণনাকারীর একটি অনুলিপি হিসাবে তৈরি করা হয়।

1 " স্ট্যান্ডার্ড আউটপুট " আউটপুট ফাইল বর্ণনাকারী।

এক্সপ্রেশন 2>&1 ফাইল বর্ণনাকারী 1 অবস্থান 2 তে অনুলিপি করে, তাই নির্বাহ পরিবেশে 2 ("স্ট্যান্ডার্ড ত্রুটি") তে লেখা কোনও আউটপুট মূলত 1 ("স্ট্যান্ডার্ড আউটপুট") দ্বারা বর্ণিত একই ফাইলটিতে যায়।

অারোও ব্যাখ্যা:

ফাইল বর্ণনাকারী : "একটি প্রতি-প্রক্রিয়া অনন্য, অ-নেতিবাচক পূর্ণসংখ্যা ফাইল অ্যাক্সেসের উদ্দেশ্যে একটি খোলা ফাইল সনাক্ত করতে ব্যবহৃত হয়।"

স্ট্যান্ডার্ড আউটপুট / ত্রুটি : শেল ডকুমেন্টেশনের Redirection বিভাগে নিম্নলিখিত নোটটি পড়ুন:

খোলা ফাইল শূন্য দিয়ে শুরু দশমিক সংখ্যা দ্বারা প্রতিনিধিত্ব করা হয়। বৃহত্তম সম্ভাব্য মান বাস্তবায়ন-সংজ্ঞায়িত করা হয়; যাইহোক, সমস্ত বাস্তবায়ন অ্যাপ্লিকেশন দ্বারা ব্যবহারের জন্য, কমপক্ষে 0 থেকে 9 সমর্থন করবে। এই সংখ্যাগুলিকে "ফাইল বর্ণনাকারী" বলা হয়। মান 0, 1, এবং ২ এর বিশেষ অর্থ এবং প্রচলিত ব্যবহার রয়েছে এবং নির্দিষ্ট পুনঃনির্দেশকরণ ক্রিয়াকলাপগুলি দ্বারা সূচিত হয়; তারা যথাক্রমে স্ট্যান্ডার্ড ইনপুট, মান আউটপুট, এবং মান ত্রুটি হিসাবে উল্লেখ করা হয়। প্রোগ্রাম সাধারণত মান ইনপুট থেকে তাদের ইনপুট নিতে, এবং মান আউটপুট আউটপুট লিখুন। ত্রুটি বার্তা সাধারণত মান ত্রুটি উপর লেখা হয়। পুনঃনির্দেশ অপারেটরগুলির একটি বা একাধিক সংখ্যা (কোন হস্তক্ষেপকারী অক্ষর অনুমোদিত নয়) দ্বারা ফাইল বর্ণনাকারী নাম নির্ধারণ করতে পারে।






redirect