Pitu variabel Bash sing ora dikarepke

Nerusake seri cathetan babagan kurang dikenal fungsi bash, Aku bakal nuduhake sampeyan pitung variabel sampeyan bisa uga ora ngerti.

1) PROMPT_COMMAND

Sampeyan bisa uga wis ngerti carane ngapusi pituduh kanggo nuduhake macem-macem informasi migunani, nanging ora kabeh wong ngerti sing bisa mbukak printah shell saben wektu pituduh ditampilake.

Nyatane, akeh manipulator pituduh rumit nggunakake variabel iki kanggo nglakokake perintah kanggo ngumpulake informasi sing ditampilake ing pituduh.

Coba mbukak iki ing cangkang anyar lan ndeleng apa sing kedadeyan ing sesi kasebut:

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

2) HISTTIMEFORMAT

Yen mlayu history ing console, sampeyan bakal nampa dhaptar printah sadurunge kaleksanan ing akun.

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

Sawise variabel iki disetel, entri anyar ngrekam wektu bebarengan karo printah, supaya output bakal katon kaya iki:

1871 Aku mlayu iki ing: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Aku mlayu iki ing: 01/05/19 13:38:19 curl bbc.co.uk 1873 Aku mlayu iki ing : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Aku mlayu iki ing: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Aku mlayu iki ing: 01 /05/19 13:39:25 sudo su -

Formatting cocog karakter saka man date.

3) CDPATH

Kanggo ngirit wektu ing baris printah, sampeyan bisa nggunakake variabel iki kanggo ngganti direktori kanthi gampang kaya sampeyan ngetokake printah.

Uga PATH, variabel CDPATH minangka dhaptar path sing dipisahake titik titik. Nalika sampeyan mbukak printah cd kanthi path relatif (yaiku ora ana garis miring), kanthi standar cangkang katon ing folder lokal kanggo jeneng sing cocog. CDPATH bakal nelusuri ing dalan sing diwenehake kanggo direktori sing pengin dituju.

Yen sampeyan nginstal CDPATH ing cara iki:

$ CDPATH=/:/lib

banjur ketik:

$ cd /home
$ cd tmp

banjur sampeyan bakal tansah mungkasi ing /tmp ora preduli ing ngendi sampeyan.

Nanging, ati-ati, amarga yen sampeyan ora nemtokake sing lokal ing dhaptar (.), banjur sampeyan ora bisa nggawe folder liyane tmp lan pindhah menyang kaya biasane:

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

Adhuh!

Iki padha karo kebingungan sing dakrasakake nalika ngerti yen folder lokal ora kalebu ing variabel sing luwih akrab PATH... nanging sampeyan kudu nindakake ing variabel PATH amarga sampeyan bisa uga diapusi nganggo perintah palsu saka sawetara kode sing diundhuh.

Mine disetel dening titik wiwitan:

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

4) SHLVL

Apa sampeyan tau mikir, ngetik exit bakal nggawa sampeyan metu saka cangkang bash saiki menyang cangkang "tiyang sepah" liyane, utawa mung nutup jendhela console rampung?

Variabel iki nglacak sepira jerone sampeyan ana ing cangkang bash. Yen sampeyan nggawe terminal anyar, disetel dadi 1:

$ echo $SHLVL
1

Banjur, yen sampeyan miwiti proses cangkang liyane, jumlahe mundhak:

$ bash
$ echo $SHLVL
2

Iki bisa migunani banget ing skrip sing sampeyan ora yakin apa arep metu utawa ora, utawa nglacak ing ngendi sampeyan dipasang.

5) LINENO

Variabel uga migunani kanggo nganalisa kahanan saiki lan debugging LINENO, sing nglaporake jumlah perintah sing ditindakake ing sesi kasebut nganti saiki:

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

Iki paling asring digunakake nalika debugging skrip. Nglebokake garis kaya echo DEBUG:$LINENO, sampeyan bisa kanthi cepet nemtokake ngendi ing script sampeyan (utawa ora).

6) REPLY

Yen, kaya aku, sampeyan biasane nulis kode kaya iki:

$ read input
echo do something with $input

Sampeyan bisa uga kaget yen sampeyan ora perlu kuwatir babagan nggawe variabel:

$ read
echo do something with $REPLY

Iki nindakake perkara sing padha.

7) TMOUT

Supaya tetep ing server produksi dawa banget kanggo alasan keamanan utawa sengaja mbukak soko mbebayani ing terminal salah, nyetel variabel iki tumindak minangka pangayoman.

Yen ora ana sing dilebokake sajrone sawetara detik, cangkang kasebut metu.

Sing, iki alternatif sleep 1 && exit:

$ TMOUT=1

Source: www.habr.com

Add a comment