Jätkates märkmeid vähem tuntud PROMPT_COMMAND
1) Võib-olla olete juba teadlik, kuidas manipuleerida prompt'i, et näidata erinevat kasulikku teavet, kuid mitte kõik ei tea, et iga kord, kui prompt'i kuvatakse, saab käivitada shelli käsu.
Tõepoolest, paljud keerulised prompt'i manipulaatorid kasutavad seda muutujat, et täita käske, mis koguvad teavet, mis kuvatakse prompt'is.
Proovige käivitada see uues shellis ja näete, mis teie sessiooniga juhtub:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
HISTTIMEFORMAT2) Kui käivitate
history konsolis, saate nimekirja käskudest, mis on varem teie kontoga täidetud. $ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Kui see muutuja on seadistatud, salvestatakse uued kirjed koos ajaga koos käsuga, seega näeb väljund välja järgmiselt:1871 I ran this at: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 I ran this at: 01/05/19 13:38:19 curl bbc.co.uk 1873 I ran this at: 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 I ran this at: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 I ran this at: 01/05/19 13:39:25 sudo su -
Formaat vastab sümbolitele, mis on
man date CDPATH.
3) Käskude real aja hoidmiseks saate seda muutujat kasutada kataloogide muutmiseks sama lihtsalt kui käskude kutsumine.
, muutuja
Nagu ka PATHkoosneb teede loendist, mis on eraldatud kooloniga. Kui käivitate käsu Käskude real aja hoidmiseks saate seda muutujat kasutada kataloogide muutmiseks sama lihtsalt kui käskude kutsumine. suhtelise tee (st ilma kaldkriipsuta alguses), siis otsib shell vaikimisi sobivaid nimesid teie kohalikust kaustast. cd otsib teed, mida olete andnud katalooge, kuhu soovite minna. Käskude real aja hoidmiseks saate seda muutujat kasutada kataloogide muutmiseks sama lihtsalt kui käskude kutsumine. Kui seadistate
niimoodi: Käskude real aja hoidmiseks saate seda muutujat kasutada kataloogide muutmiseks sama lihtsalt kui käskude kutsumine. $ CDPATH=/:/lib
ja seejärel sisestate:$ cd /home $ cd tmp
siis jõuate alati olenevalt sellest, kus te olete. /tmp Aga olge ettevaatlik, sest kui te ei määra kohalikku kausta (
) loendisse, ei saa te luua ühtegi muud kausta.tmp ja minna sellele nagu tavaliselt: $ cd /home $ mkdir tmp $ cd tmp $ pwd /tmp
Oops!See näib olevat segadus, mida tundsin, kui sain aru, et kohaliku kausta ei olnud kaasatud tuttavasse muutuja
… kuid see tuleb teha muutuja PATH-s, sest teid võib petta vale käsu käivitamine mõnest allalaaditud koodist. PATHMinu seade on alguspunkt:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
SHLVL4) Olete kunagi mõelnud, kui sisestate
Olete kunagi mõelnud, et sisestate exit kas teid viib praegusest bash-shellist välja teise "vanema" shelli või lihtsalt sulgeb konsooli akna täielikult?
See muutuja jälgib, kui sügavale olete bash-shellis sisse läinud. Uue terminali loomisel on see seatud 1-le:
$ echo $SHLVL
1Seejärel, kui käivitate teise shelliprotsessi, suureneb number:
$ bash
$ echo $SHLVL
2See võib olla väga kasulik skriptides, kus te pole kindel, kas peaksite välja minema või mitte, või jälgida, kus te asute sügavuselt.
5) LINENO
Samuti on kasulik muutuja analüüsimiseks ja silumiseks LINENO, mis näitab, kui palju käske on seansi jooksul praeguseks täidetud:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2 Seda kasutatakse kõige sagedamini skriptide silumisel. Selliste ridade lisamine nagu echo DEBUG:$LINENO, saate kiiresti tuvastada, kus te skriptis viibite (või ei viibi).
6) REPLY
Kui te, nagu mina, kirjutate tavaliselt sellist koodi:
$ read input
echo do something with $inputsiis võib olla üllatav, et ei pea muutuja loomise pärast üldse muretsema:
$ read
echo do something with $REPLYSee teeb sama.
7) TMOUT
Kuna te ei viibiks tootmisserverites liiga kaua turvakaalutlustel või ei käivitaks midagi ohtlikku vale terminalis, siis selle muutuja seadmine toimib kaitsemehhanismina.
Kui mingit sisendit ei saadud kindlaksmääratud sekundite jooksul, toimub shellist lahkumine.
See tähendab, et see on alternatiiv sleep 1 && exit:
$ TMOUT=1Allikas: habr.com
