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
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 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