Fiovana Bash fito tsy nampoizina

Manohy ny andian-tsoratra momba ny tsy dia fantatra loatra asa bash, hasehoko anao ireo variables fito izay mety tsy fantatrao.

1) PROMPT_COMMAND

Mety efa hainao ny manodinkodina ny bitsika mba hanehoana fampahalalana mahasoa isan-karazany, saingy tsy fantatry ny rehetra fa afaka manao baiko shell ianao isaky ny aseho ny bitsika.

Raha ny marina, maro ireo manipulators bitsika be pitsiny no mampiasa io fari-pahalalana io mba hanatanterahana baiko hanangonana vaovao izay aseho ao amin'ny bitsika.

Andramo atao amin'ny shell vaovao ity ary jereo izay mitranga amin'ny session:

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

2) HISTTIMEFORMAT

Raha mihazakazaka ianao history ao amin'ny console dia hahazo lisitry ny baiko efa natao teo ambanin'ny kaontinao ianao.

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

Raha vantany vao voapetraka io faribolana io, ny fidirana vaovao dia mirakitra ny fotoana miaraka amin'ny baiko, ka ho toy izao ny vokatra:

1871 Nandefa an'ity aho tamin'ny: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Nihazakazaka ity aho tao amin'ny: 01/05/19 13:38:19 curl bbc.co.uk 1873 Nihazakazaka ity aho tao amin'ny: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Nataoko tao amin'ny: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Nandefa an'ity aho tamin'ny: 01 /05/19 13:39:25 sudo su -

Ny fandrafetana dia mifanaraka amin'ny tarehin-tsoratra avy amin'ny man date.

3) CDPATH

Mba hitsitsiana fotoana amin'ny tsipika baiko dia azonao atao ny mampiasa ity fari-pahalalana ity hanovana ny lahatahiry mora toy ny famoahana baiko.

Toy izany koa PATH, miovaova CDPATH dia lisitry ny lalana misaraka tsangantsanganana. Rehefa manatanteraka ny baiko ianao cd miaraka amin'ny lalana havanana (izany hoe tsy misy slash mitarika), raha ny default dia mijery ao amin'ny lahatahiry eo an-toerana ny akorandriaka mba hahitana anarana mifanandrify. CDPATH dia hikaroka amin'ny lalana nomenao ny lahatahiry tianao haleha.

Raha mametraka ianao CDPATH araka izao fomba izao:

$ CDPATH=/:/lib

ary midira:

$ cd /home
$ cd tmp

dia hifarana foana ianao /tmp na aiza na aiza misy anao.

Tandremo anefa fa raha tsy mamaritra ny eo an-toerana ao anaty lisitra ianao (.) folder, dia tsy ho afaka hamorona lahatahiry hafa ianao tmp ary mandehana toy ny mahazatra:

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

Oops!

Izany dia mitovy amin'ny fisafotofotoana tsapako rehefa tsapako fa ny lahatahiry eo an-toerana dia tsy tafiditra ao amin'ny fari-pahaizana mahazatra kokoa PATH... fa tsy maintsy manao izany ianao ao amin'ny fari-piainanao PATH satria mety ho voafitaka ianao amin'ny famoahana baiko sandoka avy amin'ny kaody alaina.

Ny ahy dia apetraka amin'ny teboka fanombohana:

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

4) SHLVL

Efa nanontany tena ve ianao, mitendry exit hitondra anao hiala amin'ny akora bash anao amin'izao fotoana izao mankany amin'ny akora "ray aman-dreny" hafa, sa hanakatona tanteraka ny varavarankelin'ny console?

Ity fari-piadidiana ity dia manara-maso ny halalin'ny fidiranao ao amin'ny bash shell. Raha mamorona terminal vaovao ianao dia apetraka amin'ny 1:

$ echo $SHLVL
1

Avy eo, raha manomboka dingana akorandriaka hafa ianao dia mitombo ny isa:

$ bash
$ echo $SHLVL
2

Ity dia mety ho tena ilaina amin'ny script izay tsy azonao antoka na hivoaka na tsia, na hanara-maso ny toerana misy anao.

5) LINENO

Ny variable dia ilaina ihany koa amin'ny famakafakana ny fanjakana ankehitriny sy ny debugging LINENO, izay mitatitra ny isan'ny baiko vita tamin'ny session hatreto:

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

Izany no matetika ampiasaina rehefa debugging scripts. Mampiditra tsipika toy ny echo DEBUG:$LINENO, azonao atao ny mamaritra haingana hoe aiza ao amin'ny script ianao (na tsia).

6) REPLY

Raha toa ahy ianao dia manoratra code toy izao matetika:

$ read input
echo do something with $input

Mety ho mahagaga fa tsy mila manahy momba ny famoronana ny fari-piainana ianao:

$ read
echo do something with $REPLY

Manao toy izany koa izany.

7) TMOUT

Mba hialana amin'ny fijanonana ela loatra amin'ny lohamilina famokarana noho ny antony ara-piarovana na ny fandehanana zavatra mampidi-doza tsy nahy ao amin'ny terminal tsy mety, dia ny fametrahana an'io miovaova io ho fiarovana.

Raha tsy misy na inona na inona ampidirina ao anatin'ny segondra maromaro dia mivoaka ny akorandriaka.

Izany hoe, ity dia fomba hafa sleep 1 && exit:

$ TMOUT=1

Source: www.habr.com

Add a comment