ఏడు ఊహించని బాష్ వేరియబుల్స్

గురించి గమనికల శ్రేణిని కొనసాగిస్తోంది తక్కువగా తెలిసిన విధులు బాష్, మీకు తెలియని ఏడు వేరియబుల్స్‌ని నేను మీకు చూపిస్తాను.

1) PROMPT_COMMAND

వివిధ ఉపయోగకరమైన సమాచారాన్ని చూపించడానికి ప్రాంప్ట్‌ను ఎలా మార్చాలో మీకు ఇప్పటికే తెలిసి ఉండవచ్చు, కానీ ప్రాంప్ట్ చూపబడిన ప్రతిసారీ మీరు షెల్ కమాండ్‌ను అమలు చేయగలరని అందరికీ తెలియదు.

వాస్తవానికి, ప్రాంప్ట్‌లో ప్రదర్శించబడే సమాచారాన్ని సేకరించడానికి ఆదేశాలను అమలు చేయడానికి చాలా క్లిష్టమైన ప్రాంప్ట్ మానిప్యులేటర్‌లు ఈ వేరియబుల్‌ను ఉపయోగిస్తాయి.

దీన్ని కొత్త షెల్‌లో అమలు చేయడానికి ప్రయత్నించండి మరియు సెషన్‌లో ఏమి జరుగుతుందో చూడండి:

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'

2) HISTTIMEFORMAT

పరుగులు చేస్తే history కన్సోల్‌లో, మీరు మీ ఖాతా కింద గతంలో అమలు చేసిన ఆదేశాల జాబితాను అందుకుంటారు.

$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '

ఈ వేరియబుల్ సెట్ చేయబడిన తర్వాత, కొత్త ఎంట్రీలు కమాండ్‌తో పాటు సమయాన్ని రికార్డ్ చేస్తాయి, కాబట్టి అవుట్‌పుట్ ఇలా కనిపిస్తుంది:

1871 నేను దీన్ని ఈ సమయంలో రన్ చేసాను: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 నేను దీన్ని 01/05/19 13:38:19 కర్ల్ bbc.co.uk 1873 వద్ద నడిపాను : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 నేను దీన్ని 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 వద్ద రన్ చేసాను: 01 /05/19 13:39:25 సుడో సు -

ఫార్మాటింగ్ నుండి అక్షరాలు సరిపోతాయి man date.

3) CDPATH

కమాండ్ లైన్‌లో సమయాన్ని ఆదా చేయడానికి, మీరు ఆదేశాలను జారీ చేసినంత సులభంగా డైరెక్టరీలను మార్చడానికి ఈ వేరియబుల్‌ని ఉపయోగించవచ్చు.

వంటి PATH, వేరియబుల్ CDPATH అనేది కోలన్-వేరు చేయబడిన మార్గాల జాబితా. మీరు ఆదేశాన్ని అమలు చేసినప్పుడు cd సంబంధిత మార్గంతో (అంటే లీడింగ్ స్లాష్ లేదు), డిఫాల్ట్‌గా పేర్లతో సరిపోలే కోసం షెల్ మీ స్థానిక ఫోల్డర్‌లో కనిపిస్తుంది. CDPATH మీరు వెళ్లాలనుకుంటున్న డైరెక్టరీ కోసం మీరు ఇచ్చిన పాత్‌లలో శోధిస్తుంది.

మీరు ఇన్‌స్టాల్ చేస్తే CDPATH ఈ విధంగా:

$ CDPATH=/:/lib

ఆపై నమోదు చేయండి:

$ cd /home
$ cd tmp

అప్పుడు మీరు ఎల్లప్పుడూ ముగుస్తుంది /tmp మీరు ఎక్కడ ఉన్నా.

అయితే, జాగ్రత్తగా ఉండండి, ఎందుకంటే మీరు జాబితాలో స్థానికతను పేర్కొనకపోతే (.) ఫోల్డర్, అప్పుడు మీరు మరే ఇతర ఫోల్డర్‌ను సృష్టించలేరు tmp మరియు ఎప్పటిలాగే దానికి వెళ్ళండి:

$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp

అయ్యో!

స్థానిక ఫోల్డర్ మరింత సుపరిచితమైన వేరియబుల్‌లో చేర్చబడలేదని నేను గ్రహించినప్పుడు ఇది నేను అనుభవించిన గందరగోళాన్ని పోలి ఉంటుంది PATH... కానీ మీరు దీన్ని మీ PATH వేరియబుల్‌లో చేయాలి ఎందుకంటే మీరు డౌన్‌లోడ్ చేసిన కొన్ని కోడ్ నుండి నకిలీ కమాండ్‌ని అమలు చేయడంలో మోసపోవచ్చు.

గని ప్రారంభ స్థానం ద్వారా సెట్ చేయబడింది:

CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt

4) SHLVL

మీరు ఎప్పుడైనా ఆలోచిస్తున్నారా, టైప్ చేయడం exit ఇది మిమ్మల్ని మీ ప్రస్తుత బాష్ షెల్ నుండి మరొక "పేరెంట్" షెల్‌కి తీసుకువెళుతుందా లేదా అది కన్సోల్ విండోను పూర్తిగా మూసివేస్తుందా?

ఈ వేరియబుల్ మీరు బాష్ షెల్‌లో ఎంత లోతుగా గూడు కట్టుకున్నారో ట్రాక్ చేస్తుంది. మీరు కొత్త టెర్మినల్‌ను సృష్టిస్తే, అది 1కి సెట్ చేయబడుతుంది:

$ echo $SHLVL
1

అప్పుడు, మీరు మరొక షెల్ ప్రక్రియను ప్రారంభిస్తే, సంఖ్య పెరుగుతుంది:

$ bash
$ echo $SHLVL
2

నిష్క్రమించాలా వద్దా అని మీకు ఖచ్చితంగా తెలియని స్క్రిప్ట్‌లలో ఇది చాలా ఉపయోగకరంగా ఉంటుంది లేదా మీరు ఎక్కడ గూడు కట్టుకున్నారో ట్రాక్ చేయండి.

5) LINENO

ప్రస్తుత స్థితిని విశ్లేషించడానికి మరియు డీబగ్గింగ్ చేయడానికి కూడా వేరియబుల్ ఉపయోగపడుతుంది LINENO, ఇది ఇప్పటివరకు సెషన్‌లో అమలు చేయబడిన ఆదేశాల సంఖ్యను నివేదిస్తుంది:

$ bash
$ echo $LINENO
1
$ echo $LINENO
2

స్క్రిప్ట్‌లను డీబగ్గింగ్ చేసేటప్పుడు ఇది చాలా తరచుగా ఉపయోగించబడుతుంది. వంటి పంక్తులను చొప్పించడం echo DEBUG:$LINENO, మీరు స్క్రిప్ట్‌లో ఎక్కడ ఉన్నారో (లేదా) త్వరగా గుర్తించవచ్చు.

6) REPLY

నాలాగే, మీరు సాధారణంగా ఇలా కోడ్ వ్రాస్తే:

$ read input
echo do something with $input

వేరియబుల్‌ని సృష్టించడం గురించి మీరు చింతించాల్సిన అవసరం లేదని ఇది ఆశ్చర్యం కలిగించవచ్చు:

$ read
echo do something with $REPLY

ఇది అదే పని చేస్తుంది.

7) TMOUT

భద్రతా కారణాల దృష్ట్యా ప్రొడక్షన్ సర్వర్‌లపై ఎక్కువసేపు ఉండకుండా లేదా పొరపాటున ఏదైనా ప్రమాదకరమైన టెర్మినల్‌లో రన్ చేయడాన్ని నివారించడానికి, ఈ వేరియబుల్‌ని సెట్ చేయడం రక్షణగా పనిచేస్తుంది.

సెట్ చేసిన సెకన్ల వరకు ఏమీ నమోదు చేయకపోతే, షెల్ నిష్క్రమిస్తుంది.

అంటే, ఇది ప్రత్యామ్నాయం sleep 1 && exit:

$ TMOUT=1

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి