Wasu zaɓuɓɓukan Bash sananne ne kuma galibi ana amfani da su. Misali, mutane da yawa suna rubutu a farkon rubutun
saita -o xtrace
don debugging,
saita -o errexit
fita bisa kuskure ko
set-o errunset
don fita idan ba'a saita canjin da ake kira ba.
Amma akwai wasu zaɓuɓɓuka da yawa. Wani lokaci ana kwatanta su da ruɗani a cikin manas, don haka na tattara wasu mafi amfani a nan, tare da bayani.
Lura: Macs na iya samun tsohuwar sigar bash (3.x maimakon 4.x) inda ba duk waɗannan zaɓuɓɓukan suna samuwa ba. A wannan yanayin, duba
set
ko shopt
?
Akwai hanyoyi guda biyu don saita zaɓuɓɓukan bash: daga rubutun ko daga layin umarni. Kuna iya amfani da ginanniyar umarni set
и shopt
. Dukansu suna canza halayen harsashi, suna yin abu ɗaya (tare da jayayya daban-daban), amma sun bambanta a cikin su set
ana gado ko aro daga sigogi na wasu harsashi, yayin da sigogi shopt
halitta in bash.
Idan kana son ganin zaɓuɓɓukan yanzu, gudu:
$ set -o
$ shopt
Don kunna zaɓi a ciki set
Ana amfani da dogon ko gajere syntax:
$ set -o errunset
$ set -e
Tasirin iri daya ne.
Don musaki zaɓin, kuna buƙatar sanya ƙari maimakon ragi:
$ set +e
Na dade ba zan iya tunawa da wannan ma'anar ba saboda dabarar ta yi kama da ba daidai ba (alamar cirewa tana ba da damar zaɓi, kuma alamar ƙari tana hana shi).
В shopt
(mafi ma'ana) ana amfani da tutoci don kunna da kashe zaɓuɓɓuka -s
(set) kuma -u
(ba a saita):
$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off
Canza kundayen adireshi
Akwai zaɓuɓɓuka da yawa waɗanda ke taimaka muku aiki tare da kundayen adireshi.
1.cdspell
Da wannan saitin, bash zai fara fahimtar rubutun rubutu kuma zai kai ku zuwa babban fayil ɗin da kuka yi kuskuren rubuta sunansa.
$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..
Na kasance ina amfani da wannan zaɓi na shekaru da yawa kuma da wuya (wataƙila sau ɗaya a shekara) yana yin yanke shawara mai ban mamaki. Amma a wasu kwanaki cdspell
yana ceton lokaci, a zahiri kowace rana.
2. autocd
Idan ba ka yarda ka karɓi rashin ingancin shigarwar da yawa ba cd
, to zaku iya saita wannan zaɓi don matsawa zuwa babban fayil ɗin X idan babu umarnin X.
$ shopt -s autocd
$ abcdefg
$ cd ..
Haɗe tare da autocomplete, wannan yana ba ku damar tsalle tsakanin manyan fayiloli da sauri:
$ ./abc[TAB][RETURN]
cd -- ./abcdefg
Kawai kar a saka sunan babban fayil ɗin rm -rf *
(eh, ta hanya, wannan yana yiwuwa).
3.dirin fadada
Wannan zaɓi ne mai kyau wanda ke faɗaɗa masu canjin yanayi ta latsa Tab:
$ shopt -s direxpand
$ ./[TAB] # заменяется на...
$ /full/path/to/current_working_folder
$ ~/[TAB] # заменяется на...
$ /full/path/to/home/folder
$ $HOME/[TAB] # заменяется на...
$ /full/path/to/home/folder
Tsaftace fitarwa
4. ayyukan bincike
Wannan zaɓi yana dakatar da fita daga zaman idan har yanzu akwai ayyuka da ke gudana a bango.
Maimakon fita, ana nuna jerin ayyukan da ba a gama ba. Idan har yanzu kuna son fita, to ku sake shiga 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 процесса изменился
Sauya manyan iko
5.globstar
Wannan zaɓi yana ba ku musanya masu iko! Idan kun shiga:
$ shopt -s globstar
$ ls **
sa'an nan harsashi zai nuna duk kundayen adireshi da subdirectories akai-akai.
A hade tare da direxpand
Kuna iya sauri duba duk abin da ke ƙasa a cikin matsayi:
$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n)
6.extglob
Wannan zaɓi yana ba da damar fasalulluka waɗanda aka fi alaƙa da maganganu na yau da kullun. Wani lokaci wannan yana da amfani sosai:
$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile
Anan ana sanya alamu a cikin bakan gizo kuma an raba su da sandar tsaye. Anan akwai masu aiki:
? = yayi daidai da sifili ko abu ɗaya daga cikin abubuwan da aka bayar ! = nuna duk abin da bai dace da tsarin da aka bayar ba * = sifili ko fiye da abubuwan da suka faru + = daya ko fiye da faruwa @ = daidai faru daya
Kariyar haɗari
7. tarihi
Zai iya zama ɗan ban tsoro da farko don amfani da umarnin ƙaddamar da sauri daga tarihin gajarta !!
и !$
.
Zaɓi histverify
bari ka fara ganin yadda Bash ke fassara umarnin kafin a yi aiki da gaske:
$ shopt -s histverify
$ echo !$ # <= По нажатию Enter команда не запускается
$ echo histverify # <= Она сначала демонстрируется на экране,
histverify # <= а потом запускается
8. Noclobber
Bugu da ƙari, don kare kariya daga hatsarori, wato daga sake rubuta fayil ɗin da ya riga ya wanzu tare da mai aiki da turawa (>
). Wannan na iya zama bala'i idan ba ku da madadin.
Zaɓi set -С
ya hana irin wannan rubutun. Idan ya cancanta, zaku iya ƙetare kariyar ta amfani da afareta >|
:
$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$
source: www.habr.com