Zaɓuɓɓukan Bash takwas Sananniya

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 a nan ko a nan.

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 asali. Zabuka 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

Add a comment