Ochd roghainnean Bash air nach eil mòran eòlach

Tha cuid de roghainnean Bash aithnichte agus gu tric air an cleachdadh. Mar eisimpleir, bidh mòran dhaoine a’ sgrìobhadh aig toiseach an sgriobt

seata -o xtrace

airson debugging,

seata -o errexit

falbh le mearachd no

seata -o mearachd

fàgail mura h-eil an caochladair ris an canar air a shuidheachadh.

Ach tha mòran roghainnean eile ann. Aig amannan tha iad air am mìneachadh gu ro troimh-chèile ann am manas, agus mar sin chruinnich mi cuid den fheadhainn as fheumaile an seo, le mìneachadh.

Nota: Is dòcha gu bheil dreach nas sine de bash aig Macs (3.x seach 4.x) far nach eil na roghainnean sin uile rim faighinn. Anns a 'chùis seo, faic an seo no an seo.

set no shopt?

Tha dà dhòigh air roghainnean bash a shuidheachadh: bho sgriobt no bhon loidhne-àithne. Faodaidh tu òrdughan togte a chleachdadh set и shopt. Bidh an dà chuid ag atharrachadh giùlan na slige, a 'dèanamh mòran an aon rud (le argamaidean eadar-dhealaichte), ach tha iad eadar-dhealaichte tùs. Roghainnean set air an sealbhachadh no air iasad bho pharamadairean shligean eile, fhad ‘s a tha crìochan shopt air a chruthachadh ann am bash.

Ma tha thu airson na roghainnean làithreach fhaicinn, ruith:

$ set -o
$ shopt

Gus an roghainn a chuir an gnìomh a-steach set Tha co-chòrdadh fada no goirid air a chleachdadh:

$ set -o errunset
$ set -e

Tha a 'bhuaidh mar an ceudna.

Gus an roghainn a chuir dheth, feumaidh tu plus a chuir an àite minus:

$ set +e

Airson ùine mhòr cha b 'urrainn dhomh cuimhneachadh air a' cho-chòrdadh seo oir bha coltas ceàrr air an loidsig (tha soidhne minus a 'toirt cothrom don roghainn, agus tha soidhne a bharrachd ga dhì-chomasachadh).

В shopt (nas loidsigeach) tha brataichean gan cleachdadh gus roghainnean a chomasachadh agus a chuir à comas -s (seata) agus -u (unset):

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

Ag atharrachadh clàran

Tha grunn roghainnean ann a chuidicheas tu ag obair le clàran.

1.cdspell

Leis an t-suidheachadh seo, tòisichidh bash a’ tuigsinn typos agus bheir e thu chun phasgan air an do sgrìobh thu an t-ainm ceàrr.

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

Tha mi air a bhith a 'cleachdadh an roghainn seo airson iomadh bliadhna agus glè ainneamh (is dòcha aon uair sa bhliadhna) bidh e a' dèanamh co-dhùnadh gu math neònach. Ach air làithean eile cdspell a’ sàbhaladh ùine, gu litearra a h-uile latha.

2. autocd

Mura h-eil thu deònach gabhail ri neo-èifeachdas ioma-inntrigidhean cd, faodaidh tu an roghainn seo a shuidheachadh gus gluasad gu pasgan X mura h-eil an àithne X ann.

$ shopt -s autocd
$ abcdefg
$ cd ..

Còmhla ri fèin-choileanadh, leigidh seo leat leum gu sgiobalta eadar pasganan:

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

Dìreach nach ainmich am pasgan rm -rf * (tha, co-dhiù, tha seo comasach).

3.direxpand

Is e roghainn fionnar a tha seo a leudaicheas caochladairean àrainneachd le putadh air Tab:

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

toradh glan

4. checkjobs

Bidh an roghainn seo a’ stad air logadh a-mach às an t-seisean ma tha obraichean fhathast a’ ruith air a’ chùl.

An àite fàgail, tha liosta de ghnìomhan neo-chrìochnaichte air a thaisbeanadh. Ma tha thu fhathast airson fàgail, cuir a-steach a-rithist 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 процесса  изменился

Sàr-chumhachdan ionadachaidh

5.globstar

Bheir an roghainn seo mòr-chumhachdan ionadachaidh dhut! Ma chuireas tu a-steach:

$ shopt -s globstar
$ ls **

an uairsin seallaidh an t-slige a h-uile clàr agus fo-eòlaire gu ath-chùrsach.

Còmhla ri direxpand Chì thu gu sgiobalta a h-uile dad nas ìsle san rangachd:

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

6.extglob

Tha an roghainn seo a’ comasachadh feartan a tha mar as trice co-cheangailte ri abairtean cunbhalach. Uaireannan tha seo glè fheumail:

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

An seo tha na pàtrain air an cur ann am brathan agus air an sgaradh le bàr dìreach. Seo na gnìomhaichean a tha rim faighinn:

? = a' maidseadh neoni no aon tachartas de na pàtrain a chaidh a thoirt seachad ! = seall a h-uile càil nach eil a’ freagairt ris na pàtrain a chaidh a thoirt seachad * = neoni no barrachd a’ tachairt + = aon tachartas no barrachd @ = dìreach aon tachartas

Dìon tubaist

7. histverify

Faodaidh e a bhith rud beag eagallach an toiseach na h-òrdughan cur air bhog sgiobalta bho eachdraidh nan giorrachaidhean a chleachdadh !! и !$.

Roghainn histverify a’ leigeil leat faicinn an-toiseach mar a mhìnicheas Bash an àithne mus ruith e:

$ shopt -s histverify
$ echo !$          # <= По нажатию Enter команда не запускается
$ echo histverify  # <= Она сначала демонстрируется на экране,
histverify         # <= а потом запускается 

8. Noclobber

A-rithist, gus dìon an aghaidh tubaistean, is e sin bho bhith a’ sgrìobhadh thairis air faidhle a tha ann mar-thà leis a’ ghnìomhaiche ath-sheòlaidh (>). Faodaidh seo a bhith na thubaist mura h-eil cùl-taic agad.

Roghainn set -С a’ toirmeasg ath-sgrìobhadh mar sin. Ma tha feum air, faodaidh tu a dhol seachad air an dìon a 'cleachdadh a' ghnìomhaiche >|:

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

Source: www.habr.com

Cuir beachd ann