Meje airotẹlẹ Bash oniyipada

Tesiwaju awọn jara ti awọn akọsilẹ nipa o kere mọ awọn iṣẹ bash, Emi yoo fihan ọ awọn oniyipada meje ti o le ma mọ nipa rẹ.

1) PROMPT_COMMAND

O le ti mọ tẹlẹ bi o ṣe le ṣe afọwọyi itọsi lati ṣafihan ọpọlọpọ alaye to wulo, ṣugbọn kii ṣe gbogbo eniyan mọ pe o le ṣiṣe aṣẹ ikarahun ni gbogbo igba ti o ba han.

Ni otitọ, ọpọlọpọ awọn olufọwọyi ni kiakia lo oniyipada yii lati ṣiṣẹ awọn aṣẹ lati gba alaye ti o han ni tọ.

Gbiyanju ṣiṣe eyi ni ikarahun tuntun ki o wo kini o ṣẹlẹ si igba naa:

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

2) HISTTIMEFORMAT

Ti o ba sare history ninu console, iwọ yoo gba atokọ ti awọn aṣẹ ti a ṣe tẹlẹ labẹ akọọlẹ rẹ.

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

Ni kete ti a ti ṣeto oniyipada yii, awọn titẹ sii tuntun ṣe igbasilẹ akoko pẹlu aṣẹ, nitorinaa abajade yoo dabi eyi:

1871 Mo sare yi ni: 01/05/19 13:38:07 ologbo /etc/resolv.conf 1872 Mo sare yi ni: 01/05/19 13:38:19 curl bbc.co.uk 1873 Mo sare yi ni : 01/05/19 13: 38: 41 sudo vi /etc/resolv.conf 1874 Mo ran eyi ni: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Mo ran eyi ni: 01 /05/19 13:39:25 sudo su -

Kika awọn ohun kikọ ibaamu lati man date.

3) CDPATH

Lati fi akoko pamọ sori laini aṣẹ, o le lo oniyipada yii lati yi awọn ilana pada ni irọrun bi o ṣe fun awọn aṣẹ.

Bi PATH, oniyipada CDPATH ni a oluṣafihan-niya akojọ ti awọn ona. Nigbati o ba ṣiṣẹ aṣẹ naa cd pẹlu ọna ibatan (ie ko si idinku asiwaju), nipasẹ aiyipada ikarahun naa n wo folda agbegbe rẹ fun awọn orukọ ti o baamu. CDPATH yoo wa ni awọn ọna ti o fi fun liana ti o fẹ lọ si.

Ti o ba fi sori ẹrọ CDPATH bayi:

$ CDPATH=/:/lib

ati lẹhinna tẹ:

$ cd /home
$ cd tmp

lẹhinna o yoo nigbagbogbo mu soke ni /tmp ibikibi ti o ba wa.

Sibẹsibẹ, ṣọra, nitori ti o ko ba pato agbegbe kan ninu atokọ (.) folda, lẹhinna o kii yoo ni anfani lati ṣẹda folda miiran tmp ki o si lọ si bi igbagbogbo:

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

Ops!

Eyi jẹ iru si iporuru ti Mo ro nigbati Mo rii pe folda agbegbe ko wa ninu oniyipada ti o faramọ diẹ sii PATHṣugbọn o ni lati ṣe ni oniyipada PATH rẹ nitori pe o le tan ọ sinu ṣiṣe pipaṣẹ iro lati diẹ ninu koodu ti a gbasile.

Ti ṣeto temi nipasẹ aaye ibẹrẹ:

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

4) SHLVL

Njẹ o ti ṣe iyalẹnu tẹlẹ, titẹ exit Ṣe yoo mu ọ jade kuro ninu ikarahun bash lọwọlọwọ si ikarahun “obi” miiran, tabi yoo kan tii window console naa patapata?

Oniyipada yii tọju abala bi o ṣe wa ni itẹ-ẹiyẹ jinna ninu ikarahun bash. Ti o ba ṣẹda ebute tuntun, o ti ṣeto si 1:

$ echo $SHLVL
1

Lẹhinna, ti o ba bẹrẹ ilana ikarahun miiran, nọmba naa pọ si:

$ bash
$ echo $SHLVL
2

Eyi le wulo pupọ ni awọn iwe afọwọkọ nibiti o ko ni idaniloju boya lati jade tabi rara, tabi tọju abala ibi ti o wa ni itẹ-ẹiyẹ.

5) LINENO

Oniyipada naa tun wulo fun itupalẹ ipo lọwọlọwọ ati ṣiṣatunṣe LINENO, eyiti o ṣe ijabọ nọmba awọn aṣẹ ti a ṣe ni igba ti o wa titi di isisiyi:

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

Eyi ni igbagbogbo lo nigbati awọn iwe afọwọkọ n ṣatunṣe aṣiṣe. Fifi awọn ila bii echo DEBUG:$LINENO, o le yara pinnu ibi ti o wa ninu iwe afọwọkọ ti o wa (tabi rara).

6) REPLY

Ti, bii emi, o nigbagbogbo kọ koodu bii eyi:

$ read input
echo do something with $input

O le jẹ iyalẹnu pe o ko nilo lati ṣe aniyan nipa ṣiṣẹda oniyipada rara:

$ read
echo do something with $REPLY

Eyi ṣe ohun kanna.

7) TMOUT

Lati yago fun gbigbe lori awọn olupin iṣelọpọ gun fun awọn idi aabo tabi lairotẹlẹ nṣiṣẹ nkan ti o lewu ni ebute ti ko tọ, ṣeto oniyipada yii ṣe bi aabo.

Ti ko ba si nkan ti a tẹ sii fun nọmba ti a ṣeto ti awọn aaya, ikarahun naa jade.

Iyẹn ni, eyi jẹ yiyan sleep 1 && exit:

$ TMOUT=1

orisun: www.habr.com

Fi ọrọìwòye kun