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