பாஷில் stdr ஐ stdout க்கு திருப்பிவிடுவது எப்படி

How Redirect Stderr Stdout Bash



லினக்ஸில் உள்ள கட்டளைகள் பயனரிடமிருந்து சில உள்ளீடுகளை எடுத்துக்கொள்கின்றன, அவை ஒரு கோப்பாகவோ அல்லது பண்பாகவோ இருக்கலாம், மற்றும் செயல்படுத்துகையில், அவை நிலையான வெளியீடு எனப்படும் சில வெளியீடுகளைக் கொடுக்கின்றன. நிலையான வெளியீடு ஒரு வெற்றி வெளியீடு அல்லது பிழை வெளியீடு இருக்கலாம்; இரண்டும் உங்கள் முனையத் திரையில் காட்டப்படும். ஆனால் சில சமயங்களில், குறியீட்டைச் சோதிப்பதற்கோ அல்லது பிழைதிருத்தம் செய்வதற்கோ நிலையான வெளியீடுகளை ஒரு கோப்பில் சேமிக்க விரும்புகிறீர்கள். லினக்ஸில், இந்த வெளியீடுகளை ஒரு கோப்பிற்கு திருப்பி விடலாம், மேலும் அதைப் பிடிக்கும் செயல்முறை திசைதிருப்பல் என்று அழைக்கப்படுகிறது.







லினக்ஸில் உள்ள ஒவ்வொரு செயல்முறையும் மூன்று தரவு ஸ்ட்ரீம்களை உருவாக்குகிறது, stdin, stdout மற்றும் stderr:



  • ஸ்ட்டின் : விசைப்பலகை வழியாக பயனரிடமிருந்து உள்ளீட்டைப் பெறுகிறது
  • stdout : திரையில் வெளியீட்டை காட்டுகிறது
  • stderr : திரையில் பிழைத் தகவலைக் காட்டுகிறது

ஒவ்வொரு தரவு ஸ்ட்ரீமிலும் ஒரு எண் ஐடி உள்ளது:



எண் ஐடி பெயர்
0 ஸ்ட்டின்
1 stdout
2 stderr

திசைதிருப்பலை இன்னும் கொஞ்சம் விரிவாக விளக்குவோம்:





பேஷில் ஸ்டாண்டர்ட் வெளியீடு மற்றும் ஸ்டாண்டர்ட் பிழையை எப்படி திருப்பி அனுப்புவது:

கட்டளையின் நிலையான வெளியீட்டைத் திசைதிருப்ப, நாம் 1 ஐப் பயன்படுத்தி ஒரு திசைதிருப்பல் ஆபரேட்டரைப் பயன்படுத்துகிறோம்.

$ls 1>stdout.txt

மேலே உள்ள கட்டளை ஒரு கோப்பை உருவாக்கி ls கட்டளையின் நிலையான வெளியீட்டை stdout.txt கோப்பில் வைக்கும்.



Stdout.txt கோப்பைப் படிக்க, இதைப் பயன்படுத்தவும்:

$பூனைstdout.txt

கட்டளையைப் பயன்படுத்தி நிலையான பிழையை ஒரு கோப்பிற்கு திருப்பி விடலாம்:

$பூனைmyfile.txt2>stderr.txt

Stderr.txt கோப்பைப் பார்க்க, இதைப் பயன்படுத்தவும்:

$பூனைstderr.txt

> குறியீட்டை விட 2 ஐப் பயன்படுத்துவதை உறுதிசெய்க. கோப்பகத்தில் myfile.txt கோப்பு இல்லாததால், பூனை கட்டளை stderr.txt கோப்பில் சேர்க்கப்படும் ஒரு பிழையைக் கொடுக்கும்.

இந்த நிலையான வெளியீடுகளை ஒரு கட்டளையுடன் திருப்பிவிடலாம், இதைப் பயன்படுத்தவும்:

$ls 1>stdout.txt2>stderr.txt

Ls கட்டளையின் வெளியீடு இதில் எழுதப்படும் stdout.txt கோப்பு, ஆனால் stderr.txt காலியாக இருக்கும், ஏனெனில் பிழை இருக்காது.

இப்போது stderr.txt க்கு செய்வோம்:

$பூனைmyfile.txt1>stdout.txt2>stderr.txt

Stderr.txt ஐப் படிக்க கீழே குறிப்பிடப்பட்டுள்ள கட்டளையைப் பயன்படுத்தவும்.

$பூனைstderr.txt

நிச்சயமாக, stdout.txt காலியாக இருக்கும்.

முடிவுரை :

செயல்படுத்தும் போது லினக்ஸ் கட்டளை நிலையான வெளியீட்டை அளிக்கிறது, அது வெற்றி வெளியீடு அல்லது பிழை வெளியீடு ஆகும். பொதுவாக, இந்த வெளியீடுகளை வழிமாற்று ஆபரேட்டர்களைப் பயன்படுத்தி திருப்பிவிட முடியாது; > குறியுடன் குறிப்பிட்ட எண் ஐடிகளை நாம் பயன்படுத்த வேண்டும். இந்த வழிகாட்டியில், எடுத்துக்காட்டுகளுடன் ஒரு கோப்பில் நிலையான வெளியீட்டை திருப்பிவிட இந்த எண் விசைகளை எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் கற்றுக்கொண்டோம்.