Voortsetting van die reeks notas oor
1) PROMPT_COMMAND
Jy weet dalk reeds hoe om die prompt te manipuleer om verskeie nuttige inligting te wys, maar nie almal weet dat jy 'n dop-opdrag kan uitvoer elke keer as die prompt gewys word nie.
Trouens, baie komplekse vinnige manipuleerders gebruik hierdie veranderlike om opdragte uit te voer om inligting in te samel wat in die prompt vertoon word.
Probeer dit in 'n nuwe dop laat loop en kyk wat met die sessie gebeur:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
As jy hardloop history
in die konsole, sal jy 'n lys van opdragte ontvang wat voorheen onder jou rekening uitgevoer is.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Sodra hierdie veranderlike ingestel is, teken nuwe inskrywings die tyd saam met die opdrag aan, so die uitvoer sal soos volg lyk:
1871 Ek het dit gehardloop by: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Ek het dit gehardloop by: 01/05/19 13:38:19 curl bbc.co.uk 1873 Ek het dit gehardloop by : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Ek het dit gehardloop by: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Ek het dit gehardloop by: 01 /05/19 13:39:25 sudo su -
Formatering pas by karakters van man date
.
3) CDPATH
Om tyd op die opdragreΓ«l te bespaar, kan jy hierdie veranderlike gebruik om gidse so maklik te verander as wat jy opdragte uitreik.
As PATH
, veranderlike CDPATH
is 'n kolon-geskeide lys van paaie. Wanneer jy die opdrag uitvoer cd
met 'n relatiewe pad (d.w.s. geen leidende skuinsstreep), by verstek kyk die dop in jou plaaslike gids vir ooreenstemmende name. CDPATH
sal soek in die paaie wat jy gegee het vir die gids waarheen jy wil gaan.
As jy installeer CDPATH
op hierdie manier:
$ CDPATH=/:/lib
en voer dan in:
$ cd /home
$ cd tmp
dan sal jy altyd in beland /tmp
maak nie saak waar jy is nie.
Wees egter versigtig, want as jy nie die plaaslike een in die lys spesifiseer nie (.
) gids, dan sal jy nie in staat wees om enige ander gids te skep nie tmp
en gaan na dit soos gewoonlik:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Oeps!
Dit is soortgelyk aan die verwarring wat ek gevoel het toe ek besef het dat die plaaslike vouer nie by die meer bekende veranderlike ingesluit is nie PATH
... maar jy moet dit in jou PATH-veranderlike doen, want jy kan mislei word om 'n vals opdrag van een of ander afgelaaide kode uit te voer.
Myne word gestel deur die beginpunt:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Het jy al ooit gewonder, tik exit
sal dit jou uit jou huidige bash-dop na 'n ander "ouer"-dop neem, of sal dit net die konsole-venster heeltemal toemaak?
Hierdie veranderlike hou tred met hoe diep geneste jy in die bash-dop is. As jy 'n nuwe terminaal skep, is dit op 1 gestel:
$ echo $SHLVL
1
Dan, as jy 'n ander dopproses begin, neem die getal toe:
$ bash
$ echo $SHLVL
2
Dit kan baie nuttig wees in skrifte waar jy nie seker is of jy moet verlaat of nie, of tred hou met waar jy geneste is nie.
5) LINENO
Die veranderlike is ook nuttig vir die ontleding van die huidige toestand en ontfouting LINENO
, wat die aantal opdragte wat tot dusver in die sessie uitgevoer is, rapporteer:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Dit word meestal gebruik wanneer skrifte ontfout word. Invoeging van lyne soos echo DEBUG:$LINENO
, kan jy vinnig bepaal waar in die skrif jy is (of nie).
6) REPLY
As jy, soos ek, gewoonlik kode soos volg skryf:
$ read input
echo do something with $input
Dit mag dalk 'n verrassing wees dat jy glad nie hoef te bekommer oor die skep van die veranderlike nie:
$ read
echo do something with $REPLY
Dit doen dieselfde ding.
7) TMOUT
Om te verhoed dat u om sekuriteitsredes te lank op produksiebedieners bly of om per ongeluk iets gevaarliks ββin die verkeerde terminaal te laat loop, dien die instelling van hierdie veranderlike as 'n beskerming.
As niks vir 'n vasgestelde aantal sekondes ingevoer word nie, gaan die dop uit.
Dit wil sΓͺ, dit is 'n alternatief sleep 1 && exit
:
$ TMOUT=1
Bron: will.com