Zvisere Zvishoma-zvinozivikanwa Bash Options

Dzimwe sarudzo dzeBash dzinozivikanwa uye dzinowanzo shandiswa. Semuenzaniso, vanhu vazhinji vanonyora pakutanga kwechinyorwa

seti -o xtrace

kuti debugging,

seti -o errexit

kubuda nekukanganisa kana

set -o erruset

kubuda kana iyo inonzi variable isina kuiswa.

Asi pane zvimwe zvakawanda zvingasarudzwa. Dzimwe nguva vanotsanangurwa zvakanyanya kuvhiringidza mumana, saka ndaunganidza mamwe anonyanya kubatsira pano, netsananguro.

Cherechedza: Macs anogona kunge ane yekare vhezheni yebash (3.x kwete 4.x) uko zvisiri zvese izvi sarudzo dziripo. Muchiitiko ichi, ona pano kana pano.

set kana shopt?

Pane nzira mbiri dzekuisa sarudzo dzebash: kubva pane script kana kubva kumutsara wekuraira. Iwe unogona kushandisa mirairo yakavakirwa-mukati set ΠΈ shopt. Ose ari maviri anoshandura maitiro egoko, ita chinhu chimwe chete (nenharo dzakasiyana), asi akasiyana mune yavo mavambo... Sarudzo set vanogarwa nhaka kana kukweretwa kubva kumiganhu yemamwe makoko, nepo paramita shopt yakagadzirwa mu bash.

Kana iwe uchida kuona sarudzo dzazvino, mhanya:

$ set -o
$ shopt

Kuti uite sarudzo mukati set Yakareba kana pfupi syntax inoshandiswa:

$ set -o errunset
$ set -e

Mhedzisiro yacho yakafanana.

Kudzima sarudzo, unofanirwa kuisa plus pane minus:

$ set +e

Kwenguva refu handina kukwanisa kuyeuka iyi syntax nekuti pfungwa yacho yaiita kunge isiriyo (chiratidzo cheminus chinogonesa sarudzo, uye chiratidzo chekuwedzera chinodzima).

Π’ shopt (zvakawanda zvine musoro) mireza inoshandiswa kugonesa nekudzima sarudzo -s (seti) uye -u (isina kugadziriswa):

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

Kuchinja madhairekitori

Pane akati wandei sarudzo dzinokubatsira kushanda nemadhairekitori.

1.cdspell

Nekurongeka uku, bash ichatanga kunzwisisa typos uye ichakuendesa kune iyo folda ine zita rawakatadza kuperetera.

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

Ndanga ndichishandisa sarudzo iyi kwemakore akawanda uye kashoma (zvichida kamwe pagore) inoita sarudzo isinganzwisisike. Asi pane mamwe mazuva cdspell inochengetedza nguva, chaizvo mazuva ese.

2. autocd

Kana usiri kuda kubvuma kusashanda kwemanyorerwo akawanda cd, ipapo unogona kuseta iyi sarudzo kuti uende kune X folda kana X murairo usipo.

$ shopt -s autocd
$ abcdefg
$ cd ..

Yakasanganiswa neautocomplete, izvi zvinokutendera kuti ukurumidze kusvetuka pakati pemaforodha:

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

Ingorega kudoma folda rm -rf * (hongu, nenzira, izvi zvinogoneka).

3.direxpand

Iyi isarudzo inotonhorera inowedzera nharaunda dzakasiyana nekudzvanya Tab:

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

yakachena kubuda

4. checkjobs

Iyi sarudzo inomira kubuda muchikamu kana pachine mabasa ari kushanda kumashure.

Panzvimbo pekubuda, rondedzero yemabasa asina kupera inoratidzwa. Kana uchiri kuda kubuda, pinda zvakare 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 процСсса  измСнился

Kutsiva masimba makuru

5.globstar

Iyi sarudzo inokupa kutsiva masimba makuru! Kana ukapinda:

$ shopt -s globstar
$ ls **

ipapo goko rinoratidza ese madhairekitori uye subdirectories zvinodzokororwa.

Mukubatana ne direxpand Iwe unogona kukurumidza kuona zvese zvakaderera mune hierarchy:

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

6.extglob

Iyi sarudzo inogonesa maficha anowanzo kubatanidzwa neakajairika mataurirwo. Dzimwe nguva izvi zvinobatsira zvikuru:

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

Pano maitiro akaiswa mumaparentheses uye akaparadzaniswa nebhari rakamira. Heano maopareta aripo:

? = inofananidzira zero kana chiitiko chimwe chete chemaitiro akapihwa! = ratidza zvese zvisingaenderane nemapatani akapihwa * = zero kana anopfuura anoitika + = chimwe chete kana anopfuura anoitika @ = chaizvo chiitiko chimwe

Kudzivirira njodzi

7. histverify

Zvinogona kunge zvichityisa pakutanga kushandisa mirairo yekumisikidza nekukurumidza kubva munhoroondo yezvipfupiso !! ΠΈ !$.

Sarudzo histverify inoita kuti utange kuona kuti Bash anodudzira sei murairo usati wanyatsoita:

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

8. Noclobber

Zvekare, kudzivirira kubva kutsaona, kureva kubva pakunyora faira yatovepo neanotungamira opareta (>) Izvi zvinogona kuve njodzi kana iwe usina backup.

Sarudzo set -Π‘ inorambidza kunyorwa kwakadaro. Kana zvichidikanwa, unogona kunzvenga kudzivirira uchishandisa opareta >|:

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

Source: www.habr.com

Voeg