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