Ko etahi o nga whiringa Bash e tino mohiotia ana, e whakamahia ana. Hei tauira, he maha nga tangata e tuhi ana i te timatanga o te tuhinga
tautuhi -o xtrace
mo te patuiro,
whakaturia -o errexit
ki te puta pohehe ranei
huinga -o errunset
ki te puta ki te kore te taurangi ka karangahia i te tautuhi.
Engari he maha atu nga whiringa. I etahi wa ka tino poauau te korero i roto i nga mana, no reira kua kohia e au etahi o nga mea tino whaihua ki konei, me te whakamarama.
Tuhipoka: He putanga tawhito o te bash a Macs (3.x kaua ki te 4.x) kaore i te waatea enei whiringa katoa. I tenei take, tirohia
set
ranei shopt
?
E rua nga huarahi hei whakarite i nga whiringa bash: mai i te tuhinga, mai i te raina whakahau ranei. Ka taea e koe te whakamahi i nga whakahau whakauru set
и shopt
. Ka huri nga mea e rua i te whanonga o te anga, he rite tonu te mahi (he rereke nga tautohetohe), engari he rereke i o raatau set
he mea tuku iho, he nama ranei mai i nga tawhā o etahi atu anga, ko nga tawhā shopt
hanga i roto i te bash.
Ki te hiahia koe ki te kite i nga whiringa o naianei, whakahaere:
$ set -o
$ shopt
Hei whakahohe i te kōwhiringa i roto i set
Ka whakamahia te wetereo roa, poto ranei:
$ set -o errunset
$ set -e
He rite tonu te paanga.
Hei whakakore i te whiringa, me whakauru he taapiri hei utu mo te tango:
$ set +e
Mo te wa roa kare au e mahara ki tenei wetereo na te mea he he te arorau (ma te tohu iti ka taea te kowhiringa, ka whakakorehia e te tohu taapiri).
В shopt
(he arorau ake) ka whakamahia nga haki hei whakahohe me te whakakore i nga whiringa -s
(whakatakotoria) me -u
(kaore i tautuhia):
$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off
Te huri i nga whaiaronga
He maha nga whiringa hei awhina i a koe ki te mahi me nga whaiaronga.
1.cdspell
Ma tenei tautuhinga, ka timata te bash ki te mohio ki nga hapa, ka kawea koe ki te kōpaki i pohehe koe i te ingoa.
$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..
He maha nga tau e whakamahi ana ahau i tenei whiringa me te onge (he kotahi pea i te tau) he tino rerekee te whakatau. Engari i etahi atu ra cdspell
whakaora wa, mooni ia ra.
2. autocd
Mena kaore koe e pai ki te whakaae ki te koretake o nga whakaurunga maha cd
, ka taea e koe te whakarite i tenei whiringa ki te neke ki te kōpaki X mena karekau te whakahau X.
$ shopt -s autocd
$ abcdefg
$ cd ..
Ka honoa me te whakaoti aunoa, ka taea e koe te peke tere i waenga i nga kōpaki:
$ ./abc[TAB][RETURN]
cd -- ./abcdefg
Kaua e whakaingoatia te kōpaki rm -rf *
(ae, ma te ara, ka taea tenei).
3.whakawhanui
He kōwhiringa hauhautanga tēnei e whakawhānui ana i ngā taurangi taiao mā te pēhi i te Ripa:
$ shopt -s direxpand
$ ./[TAB] # заменяется на...
$ /full/path/to/current_working_folder
$ ~/[TAB] # заменяется на...
$ /full/path/to/home/folder
$ $HOME/[TAB] # заменяется на...
$ /full/path/to/home/folder
putanga ma
4. mahi taki
Ka mutu tenei kowhiringa ki te takiuru ki waho o te wahanga mena kei te haere tonu nga mahi kei muri.
Engari kaua e puta, ka whakaatuhia he rarangi o nga mahi kaore ano kia oti. Mena kei te pirangi tonu koe ki te puta, tomo ano 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 процесса изменился
Nga mana kaha whakakapi
5.wheturangi
Ma tenei whiringa ka whakawhiwhia koe ki nga mana kaha whakakapi! Mena ka uru koe:
$ shopt -s globstar
$ ls **
katahi ka whakaatu te anga i nga whaiaronga me nga raarangiroto katoa.
I roto i te huinga direxpand
Ka taea e koe te tiro tere i nga mea katoa i raro iho i te hierarchy:
$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n)
6.extglob
Ma tenei kowhiringa ka taea nga ahuatanga e hono ana ki nga kii auau. I etahi wa ka tino whai hua tenei:
$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile
I konei ka tuuhia nga tauira ki roto i te reu ka wehea e te pae poutū. Anei nga kaiwhakahaere e waatea ana:
? = ka rite ki te kore, kotahi te putanga o nga tauira kua homai! = whakaatu i nga mea katoa karekau e taurite ki nga tauira kua homai * = kore, nui ake ranei nga takanga + = kotahi, neke atu ranei nga takanga @ = kotahi tonu te takanga
Te parenga aituā
7. manatoko
He iti te wehi i te tuatahi ki te whakamahi i nga whakahau whakarewa tere mai i te hitori o nga whakapoto !!
и !$
.
Kōwhiringa histverify
kia kite tuatahi koe me pehea te whakamaoritanga a Bash i te whakahau i mua i te mahi:
$ shopt -s histverify
$ echo !$ # <= По нажатию Enter команда не запускается
$ echo histverify # <= Она сначала демонстрируется на экране,
histverify # <= а потом запускается
8. Noclobber
Ano, hei whakamarumaru i nga aitua, ara mai i te tuhirua i tetahi konae kei te noho tonu me te kaiwhakahaere anga (>
). Ka raru pea tenei mena karekau he taapiri.
Kōwhiringa set -С
ka aukati i taua tuhirua. Mena e tika ana, ka taea e koe te karo i te whakamarumaru ma te whakamahi i te kaiwhakahaere >|
:
$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$
Source: will.com