Sjö óvæntar Bash breytur

Áframhaldandi röð athugasemda um minna þekkt aðgerðir bash, ég skal sýna þér sjö breytur sem þú gætir ekki vitað um.

1) PROMPT_COMMAND

Þú gætir nú þegar vitað hvernig á að hagræða hvetjunni til að sýna ýmsar gagnlegar upplýsingar, en ekki allir vita að þú getur keyrt skeljaskipun í hvert skipti sem hvetja er sýnd.

Reyndar nota margir flóknir hvetjandi stjórnendur þessa breytu til að framkvæma skipanir til að safna upplýsingum sem birtast í hvetjunni.

Prófaðu að keyra þetta í nýrri skel og sjáðu hvað verður um lotuna:

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

2) HISTTIMEFORMAT

Ef þú hleypur history í stjórnborðinu færðu lista yfir skipanir sem áður voru framkvæmdar undir reikningnum þínum.

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

Þegar þessi breyta hefur verið stillt skrá nýjar færslur tímann ásamt skipuninni, þannig að úttakið mun líta svona út:

1871 Ég keyrði þetta á: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Ég keyrði þetta á: 01/05/19 13:38:19 curl bbc.co.uk 1873 Ég keyrði þetta á : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Ég keyrði þetta á: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Ég hljóp þetta á: 01 /05/19 13:39:25 sudo su -

Snið samsvarar stöfum frá man date.

3) CDPATH

Til að spara tíma á skipanalínunni geturðu notað þessa breytu til að breyta möppum eins auðveldlega og þú gefur út skipanir.

Eins PATH, breytilegt CDPATH er listi yfir slóðir aðskilinn með ristli. Þegar þú keyrir skipunina cd með hlutfallslegri slóð (þ.e. engin skástrik), sjálfgefið leitar skelin í möppunni þinni fyrir samsvarandi nöfn. CDPATH mun leita á slóðunum sem þú gafst upp að möppunni sem þú vilt fara í.

Ef þú setur upp CDPATH á þennan hátt:

$ CDPATH=/:/lib

og sláðu svo inn:

$ cd /home
$ cd tmp

þá lendirðu alltaf í /tmp sama hvar þú ert.

Vertu samt varkár, því ef þú tilgreinir ekki þann staðbundna á listanum (.) möppu, þá muntu ekki geta búið til neina aðra möppu tmp og farðu í það eins og venjulega:

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

Úps!

Þetta er svipað og ruglið sem ég fann fyrir þegar ég áttaði mig á því að staðbundin mappa var ekki innifalin í kunnuglegri breytunni PATH... en þú verður að gera það í PATH breytunni þinni vegna þess að þú gætir verið blekktur til að keyra falsa skipun úr einhverjum niðurhaluðum kóða.

Mitt er stillt af upphafspunktinum:

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

4) SHLVL

Hefur þú einhvern tíma velt því fyrir þér, að skrifa exit mun það taka þig út úr núverandi bash skelinni þinni í aðra "foreldra" skel, eða mun það bara loka stjórnborðsglugganum alveg?

Þessi breyta heldur utan um hversu djúpt hreiður þú ert í bash skelinni. Ef þú býrð til nýja flugstöð er hún stillt á 1:

$ echo $SHLVL
1

Síðan, ef þú byrjar annað skel ferli, hækkar talan:

$ bash
$ echo $SHLVL
2

Þetta getur verið mjög gagnlegt í forskriftum þar sem þú ert ekki viss um hvort þú eigir að hætta eða ekki, eða heldur utan um hvar þú ert hreiður.

5) LINENO

Breytan er einnig gagnleg til að greina núverandi ástand og villuleit LINENO, sem greinir frá fjölda skipana sem hafa verið framkvæmdar í lotunni hingað til:

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

Þetta er oftast notað þegar kembiforrit eru kembiforrit. Að setja inn línur eins og echo DEBUG:$LINENO, þú getur fljótt ákvarðað hvar í handritinu þú ert (eða ekki).

6) REPLY

Ef þú skrifar venjulega kóða eins og ég, svona:

$ read input
echo do something with $input

Það gæti komið á óvart að þú þurfir alls ekki að hafa áhyggjur af því að búa til breytuna:

$ read
echo do something with $REPLY

Þetta gerir það sama.

7) TMOUT

Til að forðast að vera of lengi á framleiðsluþjónum af öryggisástæðum eða keyra óvart eitthvað hættulegt í röngum flugstöð, virkar þessi breyta sem vernd.

Ef ekkert er slegið inn í ákveðinn fjölda sekúndna fer skelin út.

Það er, þetta er val sleep 1 && exit:

$ TMOUT=1

Heimild: www.habr.com

Bæta við athugasemd