Ocht Rogha Bash ar Aithnid Beag

Tá roinnt roghanna Bash ar eolas go maith agus is minic a úsáidtear iad. Mar shampla, scríobhann go leor daoine ag tús na scripte

tacar -o xtrace

le haghaidh dífhabhtaithe,

tacar -o errexit

chun imeacht de dhearmad nó

set -o errunset

chun imeacht mura bhfuil an athróg ar a dtugtar socraithe.

Ach tá go leor roghanna eile ann. Uaireanta déantar cur síos ró-mhearbhall orthu i manas, mar sin tá cuid de na cinn is úsáidí bailithe agam anseo, le míniú.

Nóta: D'fhéadfadh go mbeadh leagan níos sine de bash (3.x seachas 4.x) ag Mac nuair nach bhfuil na roghanna seo ar fad ar fáil. Sa chás seo, féach anseoanseo.

setshopt?

Tá dhá bhealach ann chun roghanna bash a shocrú: ó script nó ón líne ordaithe. Is féidir leat orduithe ionsuite a úsáid set и shopt. Athraíonn an dá iompar an bhlaosc, a dhéanamh i bhfad an rud céanna (le hargóintí éagsúla), ach difriúil ina gcuid bunadh... Roghanna set a fhaightear le hoidhreacht nó a fuarthas ar iasacht ó pharaiméadair sliogáin eile, agus paraiméadair shopt cruthaithe i bash.

Más mian leat na roghanna reatha a fheiceáil, rith:

$ set -o
$ shopt

Chun an rogha a ghníomhachtú i set Úsáidtear comhréir fhada nó gearr:

$ set -o errunset
$ set -e

Tá an éifeacht mar an gcéanna.

Chun an rogha a dhíchumasú, ní mór duit móide a chur in ionad lúide:

$ set +e

Ar feadh i bhfad ní raibh mé in ann cuimhneamh ar an chomhréir seo mar bhí an chuma ar an loighic mícheart (cuireann comhartha lúide an rogha, agus díchumasaíonn comhartha móide é).

В shopt (níos loighciúla) úsáidtear bratacha chun roghanna a chumasú agus a dhíchumasú -s (leagtar) agus -u (unset):

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

Eolairí a athrú

Tá roinnt roghanna ann a chabhróidh leat oibriú le heolairí.

1.cdspell

Leis an socrú seo, tosóidh bash ag tuiscint typos agus tabharfaidh sé chuig an bhfillteán a ndearna tú mílitriú ar a ainm.

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

Tá mé ag baint úsáide as an rogha seo le blianta fada agus go han-annamh (b'fhéidir uair sa bhliain) déanann sé cinneadh an-aisteach. Ach ar laethanta eile cdspell Sábhálann am, literally gach lá.

2. autocd

Mura bhfuil tú sásta glacadh le neamhéifeachtúlacht na n-iontrálacha iolracha cd, ansin is féidir leat an rogha seo a shocrú chun bogadh go dtí an fillteán X mura bhfuil an t-ordú X ann.

$ shopt -s autocd
$ abcdefg
$ cd ..

In éineacht le uathchríochnú, ligeann sé seo duit léim go tapa idir fillteáin:

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

Ná hainmnigh an fillteán rm -rf * (tá, dála an scéil, is féidir é seo).

3.direxpand

Is rogha iontach é seo a leathnaíonn athróga timpeallachta trí Cluaisín a bhrú:

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

aschur glan

4. seiceanna

Cuireann an rogha seo stop le logáil amach as an seisiún má tá poist fós ar siúl sa chúlra.

In ionad dul amach, taispeántar liosta tascanna neamhchríochnaithe. Más mian leat imeacht fós, ansin cuir isteach arís 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árchumhachtaí ionadaíochta

5.globstar

Tugann an rogha seo sárchumhachtaí ionadaíochta duit! Má chuireann tú isteach:

$ shopt -s globstar
$ ls **

ansin taispeánfaidh an bhlaosc gach eolaire agus fochomhadlann go hathchúrsach.

I dteannta direxpand Is féidir leat gach rud níos ísle san ordlathas a fheiceáil go tapa:

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

6.extglob

Cumasaíonn an rogha seo gnéithe a bhaineann níos coitianta le habairtí rialta. Uaireanta tá sé seo an-úsáideach:

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

Anseo cuirtear na patrúin i lúibíní agus scartha le barra ingearach. Seo iad na hoibreoirí atá ar fáil:

? oireann náid nó teagmhas amháin de na patrúin tugtha ! = taispeáin gach rud nach meaitseálann na patrúin tugtha * = tarluithe nó níos mó náid + = tarluithe amháin nó níos mó @ = teagmhas amháin

Cosaint timpiste

7. histverify

Féadfaidh sé a bheith rud beag scanrúil ar dtús úsáid a bhaint as na horduithe seolta tapa ó stair na ngiorrúchán !! и !$.

Rogha histverify ligeann sé duit a fheiceáil ar dtús conas a léirmhíníonn Bash an t-ordú sula ritheann sé i ndáiríre:

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

8. Oíche Shamhna

Arís, chun cosaint a dhéanamh ar thimpistí, eadhon ó chomhad atá ann cheana féin leis an oibreoir atreoraithe a fhorscríobh (>). Is féidir leis seo a bheith ina thubaiste mura bhfuil cúltaca agat.

Rogha set -С cosc ar fhorscríobh den sórt sin. Más gá, is féidir leat an chosaint a sheachbhóthar ag baint úsáide as an oibreoir >|:

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

Foinse: will.com

Add a comment