బాష్‌లో స్టెడౌర్‌ని స్టెడౌట్‌కి రీడైరెక్ట్ చేయడం ఎలా

How Redirect Stderr Stdout Bash



లైనక్స్‌లోని కమాండ్‌లు వినియోగదారు నుండి కొంత ఇన్‌పుట్‌ను తీసుకుంటాయి, అవి ఫైల్ లేదా ఏదైనా లక్షణం కావచ్చు మరియు అమలు చేసిన తర్వాత, అవి స్టాండర్డ్ అవుట్‌పుట్ అని పిలువబడే కొంత అవుట్‌పుట్‌ను ఇస్తాయి. ప్రామాణిక అవుట్‌పుట్ సక్సెస్ అవుట్‌పుట్ లేదా లోపం అవుట్‌పుట్ కావచ్చు; రెండూ మీ టెర్మినల్ స్క్రీన్‌లో ప్రదర్శించబడతాయి. కానీ కొన్ని సందర్భాల్లో, కోడ్‌ని పరీక్షించడానికి లేదా డీబగ్గింగ్ చేయడానికి మీరు ఫైల్‌కు ప్రామాణిక అవుట్‌పుట్‌లను నిల్వ చేయాలనుకుంటున్నారు. Linux లో, ఈ అవుట్‌పుట్‌లను ఫైల్‌కి మళ్లించవచ్చు మరియు దానిని క్యాప్చర్ చేసే ప్రక్రియను దారి మళ్లింపు అంటారు.







Linux లో ప్రతి ప్రక్రియ stdin, stdout మరియు stderr అనే మూడు డేటా స్ట్రీమ్‌లను ఉత్పత్తి చేస్తుంది:



  • stdin : కీబోర్డ్ ద్వారా వినియోగదారు నుండి ఇన్‌పుట్ తీసుకుంటుంది
  • stdout : తెరపై అవుట్‌పుట్ ప్రదర్శిస్తుంది
  • stderr : స్క్రీన్‌పై లోపం సమాచారాన్ని చూపుతుంది

ప్రతి డేటా స్ట్రీమ్‌లో సంఖ్యాత్మక ఐడి ఉంటుంది:



సంఖ్యాత్మక ఐడి పేరు
0 stdin
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 ఖాళీగా ఉంటుంది.

ముగింపు :

Linux కమాండ్ ఎగ్జిక్యూట్ చేసిన తర్వాత స్టాండర్డ్ అవుట్‌పుట్ ఇస్తుంది అది సక్సెస్ అవుట్‌పుట్ లేదా ఎర్రర్ అవుట్‌పుట్ కావచ్చు. సాధారణంగా, ఈ అవుట్‌పుట్‌లు దారి మళ్లింపు ఆపరేటర్‌లను ఉపయోగించి మళ్లించబడవు; మేము నిర్దిష్ట సంకేత ఐడీలను> గుర్తుతో ఉపయోగించాలి. ఈ గైడ్‌లో, ఉదాహరణలతో కూడిన ఫైల్‌కు ప్రామాణిక అవుట్‌పుట్‌ను రీడైరెక్ట్ చేయడానికి ఈ సంఖ్యా కీలను ఎలా ఉపయోగించాలో నేర్చుకున్నాము.