Pito ka wala damha nga mga variable sa Bash

Nagpadayon sa serye sa mga nota bahin sa dili kaayo nailhan mga gimbuhaton bash, ipakita ko kanimo ang pito ka mga variable nga dili nimo mahibal-an.

1) PROMPT_COMMAND

Mahimong nahibal-an na nimo kung giunsa ang pagmaniobra sa pag-aghat aron ipakita ang lainlaing mapuslanon nga kasayuran, apan dili tanan nahibal-an nga mahimo nimong ipadagan ang usa ka shell command matag higayon nga ipakita ang prompt.

Sa tinuud, daghang mga komplikado nga mga manipulator nga gigamit ang kini nga variable aron ipatuman ang mga mando aron makolekta ang kasayuran nga gipakita sa prompt.

Sulayi pagpadagan kini sa usa ka bag-ong kabhang ug tan-awa kung unsa ang mahitabo sa sesyon:

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

2) HISTTIMEFORMAT

Kung modagan ka history sa console, makadawat ka usa ka lista sa mga mando nga kaniadto gipatuman sa ilawom sa imong account.

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

Kung mabutang na kini nga variable, ang mga bag-ong entries nagrekord sa oras kauban ang mando, aron ang output ingon niini:

1871 Gipadagan ko kini sa: 01/05/19 13:38:07 iring /etc/resolv.conf 1872 Gidagan ko kini sa: 01/05/19 13:38:19 curl bbc.co.uk 1873 Gidagan ko kini sa: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Gipadagan ko kini sa: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Gipadagan ko kini sa: 01 /05/19 13:39:25 sudo su -

Ang pag-format motakdo sa mga karakter gikan sa man date.

3) CDPATH

Aron makadaginot sa oras sa command line, mahimo nimong gamiton kini nga variable aron mabag-o ang mga direktoryo sa kadali sama sa imong pag-isyu sa mga mando.

Maingon man PATH, variable CDPATH mao ang usa ka colon-separated nga listahan sa mga agianan. Kung gipadagan nimo ang mando cd nga adunay relatibong dalan (pananglitan walay nag-unang slash), sa default ang kabhang tan-awon sa imong lokal nga folder alang sa pagpares sa mga ngalan. CDPATH mangita sa mga dalan nga imong gihatag alang sa direktoryo nga gusto nimong adtoan.

Kung imong gi install CDPATH sa niini nga paagi:

$ CDPATH=/:/lib

ug dayon pagsulod:

$ cd /home
$ cd tmp

unya ikaw kanunay nga mahuman /tmp bisag asa ka.

Bisan pa, pag-amping, tungod kay kung dili nimo ipiho ang lokal sa lista (.) folder, nan dili ka makahimo sa paghimo og bisan unsang laing folder tmp ug adto niini sama sa naandan:

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

Oops!

Kini susama sa kalibog nga akong gibati sa dihang akong naamgohan nga ang lokal nga folder wala maapil sa mas pamilyar nga variable PATH... apan kinahanglan nimo nga buhaton kini sa imong PATH variable tungod kay mahimo ka nga malimbongan sa pagpadagan sa usa ka peke nga mando gikan sa pipila nga na-download nga code.

Ang akoa gitakda sa punto sa pagsugod:

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

4) SHLVL

Nakahunahuna ka na ba, pag-type exit Mokuha ba kini kanimo gikan sa imong kasamtangan nga bash shell ngadto sa laing "ginikanan" nga kabhang, o isira lang ba niini ang console window sa hingpit?

Kini nga variable nagsubay kung unsa ka lawom ang imong pagkabutang sa bash shell. Kung maghimo ka usa ka bag-ong terminal, gibutang kini sa 1:

$ echo $SHLVL
1

Dayon, kung magsugod ka og laing proseso sa kabhang, ang gidaghanon modaghan:

$ bash
$ echo $SHLVL
2

Mahimong mapuslanon kaayo kini sa mga script diin dili ka sigurado kung mogawas ba o dili, o bantayan kung asa ka nagsalag.

5) LINENO

Mapuslanon usab ang variable alang sa pag-analisar sa karon nga kahimtang ug pag-debug LINENO, nga nagtaho sa gidaghanon sa mga sugo nga gipatuman sa sesyon hangtod karon:

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

Kini kasagarang gigamit sa pag-debug sa mga script. Pagsulod sa mga linya sama sa echo DEBUG:$LINENO, dali nimo matino kung asa ka sa script (o dili).

6) REPLY

Kung, sama nako, kasagarang mosulat ka og code sama niini:

$ read input
echo do something with $input

Mahimong usa ka katingala nga dili ka kinahanglan mabalaka bahin sa paghimo sa variable sa tanan:

$ read
echo do something with $REPLY

Kini nagbuhat sa samang butang.

7) TMOUT

Aron malikayan ang pagpabilin sa mga server sa produksiyon nga dugay alang sa mga hinungdan sa seguridad o aksidente nga pagpadagan sa usa ka butang nga peligro sa sayup nga terminal, ang pagpahimutang niini nga variable molihok ingon usa ka proteksyon.

Kung walay gisulod sulod sa gitakdang gidaghanon sa mga segundo, ang kabhang mogawas.

Sa ato pa, kini usa ka alternatibo sleep 1 && exit:

$ TMOUT=1

Source: www.habr.com

Idugang sa usa ka comment