Ezagutzen diren zortzi Bash aukera

Bash aukera batzuk ezagunak dira eta askotan erabiltzen dira. Esaterako, jende askok idazten du gidoiaren hasieran

ezarri -o xtrace

arazketarako,

set -o errexit

akatsez irten edo

set -o errunset

deitutako aldagaia ezarrita ez badago irteteko.

Baina beste aukera asko daude. Batzuetan nahasiegi deskribatzen dira manas-en, beraz, erabilgarrienetako batzuk bildu ditut hemen, azalpenekin.

Oharra: Baliteke Mac-ek bash-en bertsio zaharrago bat izatea (3.x 4.x baino gehiago) non aukera hauek guztiak erabilgarri ez dauden. Kasu honetan, ikus Hemen edo Hemen.

set edo shopt?

Bash aukerak ezartzeko bi modu daude: script batetik edo komando-lerrotik. Komando integratuak erabil ditzakezu set ΠΈ shopt. Biek shell-aren portaera aldatzen dute, gauza bera egiten dute (argudio ezberdinekin), baina ezberdintzen dira jatorria. Aukerak set beste shell batzuen parametroetatik heredatzen edo mailegatzen dira, parametroak, berriz shopt bash-en sortua.

Uneko aukerak ikusi nahi badituzu, exekutatu:

$ set -o
$ shopt

Aukera aktibatzeko set Sintaxi luzea edo laburra erabiltzen da:

$ set -o errunset
$ set -e

Efektua berdina da.

Aukera desgaitzeko, plus bat jarri behar duzu minusaren ordez:

$ set +e

Denbora luzez ezin nuen sintaxi hau gogoratzen, logika okerra zirudien (minus zeinuak aukera gaitu eta plus zeinuak desgaitu egiten du).

Π’ shopt (logikoagoak) aukerak gaitzeko eta desgaitzeko banderak erabiltzen dira -s (multzoa) eta -u (jarri gabe):

$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off

Direktorioak aldatzea

Direktorioekin lan egiten lagunduko dizuten hainbat aukera daude.

1.cdspell

Ezarpen honekin, bash akatsak ulertzen hasiko da eta izena gaizki idatzi duzun karpetara eramango zaitu.

$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..

Urte asko daramatzat aukera hau erabiltzen eta oso gutxitan (urtean behin agian) oso erabaki arraroa hartzen du. Baina beste egun batzuetan cdspell denbora aurrezten du, literalki egunero.

2. autocd

Sarreren eraginkortasunik eza onartzeko prest ez bazaude cd, orduan aukera hau ezar dezakezu X karpetara mugitzeko X komandoa existitzen ez bada.

$ shopt -s autocd
$ abcdefg
$ cd ..

Osatze automatikoarekin konbinatuta, karpeta batetik bestera azkar salto egiteko aukera ematen du:

$ ./abc[TAB][RETURN]
cd -- ./abcdefg

Ez jarri izena karpetari rm -rf * (bai, bide batez, hau posible da).

3.zuzendara zabaldu

Aukera polita da, ingurune-aldagaiak zabaltzen dituena Tab sakatuz:

$ shopt -s direxpand
$ ./[TAB]     # замСняСтся Π½Π°...
$ /full/path/to/current_working_folder
$ ~/[TAB]     # замСняСтся Π½Π°...
$ /full/path/to/home/folder
$ $HOME/[TAB] #  замСняСтся Π½Π°...
$ /full/path/to/home/folder

Irteera garbia

4. egiaztatzeko lanak

Aukera honek saiotik amaitzeari uzten dio atzeko planoan lanak oraindik exekutatzen badira.

Irten beharrean, amaitu gabeko zereginen zerrenda bistaratzen da. Oraindik irten nahi baduzu, sartu berriro exit.

$ shopt -s checkjobs
$ echo $$
68125             # <= ID процСсса для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
$ sleep 999 &
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ echo $$
68125             # <= ID процСсса для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ exit
$ echo $$
$ 59316           # <= Π½Π° этот Ρ€Π°Π· ID процСсса  измСнился

Ordezko superbotereak

5.globstar

Aukera honek ordezkapen-superbotereak ematen dizkizu! Sartzen baduzu:

$ shopt -s globstar
$ ls **

orduan shell-ak direktorio eta azpidirektorio guztiak modu errekurtsiboan erakutsiko ditu.

Konbinatuta direxpand Azkar ikus dezakezu hierarkian beherago dagoen guztia:

$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n) 

6.extglob

Aukera honek adierazpen erregularrekin lotzen diren ezaugarriak gaitzen ditu. Batzuetan hau oso erabilgarria da:

$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile

Hemen ereduak parentesi artean jartzen dira eta barra bertikal batez bereizten dira. Hona hemen erabilgarri dauden operadoreak:

? = emandako ereduen zero edo agerraldi batekin bat dator! = Emandako ereduekin bat ez datorren guztia erakutsi * = zero edo gehiago agerraldi + = agerraldi bat edo gehiago @ = zehazki agerraldi bat

Istripuen babesa

7. hist egiaztatu

Hasieran beldurgarri samarra izan daiteke laburduren historiako abiarazteko komando azkarrak erabiltzea !! ΠΈ !$.

Aukera histverify Bashek komandoa benetan exekutatu aurretik nola interpretatzen duen ikusten uzten dizu:

$ shopt -s histverify
$ echo !$          # <= По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Enter ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ запускаСтся
$ echo histverify  # <= Она сначала дСмонстрируСтся Π½Π° экранС,
histverify         # <= Π° ΠΏΠΎΡ‚ΠΎΠΌ запускаСтся 

8. Noclobber

Berriz ere, istripuetatik babesteko, hots, birbideratzeko operadorearekin lehendik dagoen fitxategi bat gainidazteko (>). Hau hondamendia izan daiteke babeskopiarik ez baduzu.

Aukera set -Π‘ gainidazketa hori debekatzen du. Beharrezkoa izanez gero, babesa saihestu dezakezu operadorea erabiliz >|:

$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$

Iturria: www.habr.com

Gehitu iruzkin berria