Chaguzi Nane Zisizojulikana za Bash

Chaguzi zingine za Bash zinajulikana na hutumiwa mara nyingi. Kwa mfano, watu wengi huandika mwanzoni mwa hati

seti -o xtrace

kwa utatuzi,

seti -o errexit

kutoka kwa makosa au

set -o erruset

kutoka ikiwa utofauti unaoitwa haujawekwa.

Lakini kuna chaguzi nyingine nyingi. Wakati mwingine zinaelezewa kwa njia ya kutatanisha sana kwenye manas, kwa hivyo nimekusanya zile muhimu zaidi hapa, kwa maelezo.

Kumbuka: Mac inaweza kuwa na toleo la zamani la bash (3.x badala ya 4.x) ambapo si chaguo hizi zote zinazopatikana. Katika kesi hii, ona hapa au hapa.

set au shopt?

Kuna njia mbili za kuweka chaguzi za bash: kutoka kwa hati au kutoka kwa safu ya amri. Unaweza kutumia amri zilizojengwa set ΠΈ shopt. Zote mbili hubadilisha tabia ya ganda, fanya kitu kimoja (na hoja tofauti), lakini hutofautiana katika zao asili... Chaguo set ni kurithi au kukopa kutoka kwa vigezo vya shells nyingine, wakati vigezo shopt imeundwa kwa bash.

Ikiwa unataka kuona chaguzi za sasa, endesha:

$ set -o
$ shopt

Ili kuwezesha chaguo katika set Sintaksia ndefu au fupi hutumiwa:

$ set -o errunset
$ set -e

Athari ni sawa.

Ili kuzima chaguo, unahitaji kuweka plus badala ya minus:

$ set +e

Kwa muda mrefu sikuweza kukumbuka syntax hii kwa sababu mantiki ilionekana kuwa sio sawa (ishara ya minus inawezesha chaguo, na ishara ya kuongeza inaizima).

Π’ shopt (za kimantiki zaidi) bendera hutumiwa kuwezesha na kuzima chaguo -s (kuweka) na -u (isiyowekwa):

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

Kubadilisha saraka

Kuna chaguzi kadhaa zinazokusaidia kufanya kazi na saraka.

1.cdspell

Kwa mpangilio huu, bash itaanza kuelewa typos na itakupeleka kwenye folda ambayo jina lake ulikosea.

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

Nimekuwa nikitumia chaguo hili kwa miaka mingi na mara chache sana (labda mara moja kwa mwaka) hufanya uamuzi wa kushangaza sana. Lakini siku zingine cdspell huokoa wakati, halisi kila siku.

2. autocd

Ikiwa hauko tayari kukubali uzembe wa maingizo mengi cd, basi unaweza kuweka chaguo hili kuhamia folda ya X ikiwa amri ya X haipo.

$ shopt -s autocd
$ abcdefg
$ cd ..

Ikijumuishwa na kukamilisha kiotomatiki, hii hukuruhusu kuruka haraka kati ya folda:

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

Usiitaje folda tu rm -rf * (ndio, kwa njia, hii inawezekana).

3.kupanua

Hili ni chaguo zuri ambalo linapanua anuwai za mazingira kwa kubonyeza Tab:

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

pato safi

4. kazi za ukaguzi

Chaguo hili litaacha kuondoka kwenye kipindi ikiwa bado kuna kazi zinazoendeshwa chinichini.

Badala ya kuondoka, orodha ya kazi ambazo hazijakamilika huonyeshwa. Ikiwa bado unataka kuondoka, basi ingiza tena 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 процСсса  измСнился

Nguvu kubwa za uingizwaji

5.globstar

Chaguo hili hukupa mamlaka makubwa badala! Ukiingia:

$ shopt -s globstar
$ ls **

basi ganda litaonyesha saraka na subdirectories zote kwa kujirudia.

Kuchanganya na direxpand Unaweza kuona haraka kila kitu chini katika uongozi:

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

6.extglob

Chaguo hili huwezesha vipengele ambavyo vinahusishwa zaidi na maneno ya kawaida. Wakati mwingine hii ni muhimu sana:

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

Hapa mifumo imewekwa kwenye mabano na kutengwa na bar ya wima. Hapa kuna waendeshaji wanaopatikana:

? = inalingana na sifuri au tukio moja la muundo uliopewa! = onyesha kila kitu ambacho hakilingani na mifumo uliyopewa * = sifuri au matukio zaidi + = tukio moja au zaidi @ = tukio moja haswa

Ulinzi wa ajali

7. histverify

Inaweza kutisha kidogo mwanzoni kutumia amri za uzinduzi wa haraka kutoka kwa historia ya vifupisho !! ΠΈ !$.

Chaguo histverify hukuruhusu kuona kwanza jinsi Bash anavyotafsiri amri kabla haijaanza:

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

8. Noclobber

Tena, kulinda dhidi ya ajali, ambayo ni kutokana na kubatilisha faili ambayo tayari ipo na mwendeshaji wa kuelekeza upya (>) Hili linaweza kuwa janga ikiwa huna chelezo.

Chaguo set -Π‘ inakataza uandishi kama huo. Ikiwa ni lazima, unaweza kupitisha ulinzi kwa kutumia operator >|:

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

Chanzo: mapenzi.com

Kuongeza maoni