Ụfọdụ nhọrọ Bash mara nke ọma ma na-ejikarị ya eme ihe. Dịka ọmụmaatụ, ọtụtụ ndị na-ede na mmalite nke edemede
set-o xtrace
maka debugging,
set-o errexit
ịpụ n'amaghị ama ma ọ bụ
set-o errunset
ịpụ apụ ma ọ bụrụ na edobeghi mgbanwe a na-akpọ.
Ma enwere ọtụtụ nhọrọ ndị ọzọ. Mgbe ụfọdụ, a na-akọwa ha nke ukwuu na manas, yabụ anakọtara m ụfọdụ ndị bara uru ebe a, yana nkọwa.
Mara: Macs nwere ike ịnwe ụdị bash ochie (3.x karịa 4.x) ebe ọ bụghị nhọrọ ndị a niile dị. N'okwu a, hụ
set
ma ọ bụ shopt
?
Enwere ụzọ abụọ iji tọọ nhọrọ bash: site na edemede ma ọ bụ site na ahịrị iwu. Ị nwere ike iji iwu arụnyere set
и shopt
. Ha abụọ na-agbanwe omume nke shei ahụ, na-eme otu ihe ahụ (na arụmụka dị iche iche), ma dị iche na ha set
a na-eketa ma ọ bụ gbaziri site na paramita nke shells ndị ọzọ, mgbe paramita shopt
kere na bash.
Ọ bụrụ na ịchọrọ ịhụ nhọrọ dị ugbu a, gbaa ọsọ:
$ set -o
$ shopt
Ka ịgbalite nhọrọ n'ime set
A na-eji syntax ogologo ma ọ bụ mkpụmkpụ:
$ set -o errunset
$ set -e
Mmetụta bụ otu ihe ahụ.
Iji gbanyụọ nhọrọ ahụ, ịkwesịrị itinye mgbakwunye kama mwepu:
$ set +e
Ruo ogologo oge enweghị m ike icheta syntax a n'ihi na mgbagha ahụ yiri ihe na-ezighi ezi (akara mwepu na-enyere nhọrọ ahụ aka, akara mgbakwunye na-ewepụ ya).
В shopt
A na-eji ọkọlọtọ (nke ezi uche dị na ya) iji mee ma gbanyụọ nhọrọ -s
(set) na -u
(Edabere):
$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off
Na-agbanwe akwụkwọ ndekọ aha
Enwere ọtụtụ nhọrọ na-enyere gị aka ịrụ ọrụ na akwụkwọ ndekọ aha.
1.cdspell
Site na ntọala a, bash ga-amalite ịghọta typos ma kpọga gị na folda nke ị defuru aha ya.
$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..
M na-eji nke a nhọrọ ruo ọtụtụ afọ na nnọọ adịkarịghị (ikekwe otu ugboro n'afọ) ọ na-eme a nnọọ iju mkpebi. Ma n'ụbọchị ndị ọzọ cdspell
na-azọpụta oge, n'ezie kwa ụbọchị.
2. autocd
Ọ bụrụ na ị chọghị ịnakwere adịghị arụ ọrụ nke ọtụtụ ndenye cd
, mgbe ahụ ị nwere ike ịtọ nhọrọ a ịkwaga na nchekwa X ma ọ bụrụ na iwu X adịghị.
$ shopt -s autocd
$ abcdefg
$ cd ..
Ejikọtara ya na autocomplete, nke a na-enye gị ohere ima elu ngwa ngwa n'etiti folda:
$ ./abc[TAB][RETURN]
cd -- ./abcdefg
Naanị ahaghị folda ahụ rm -rf *
(ee, n'ụzọ, nke a ga-ekwe omume).
3.diri gbasaa
Nke a bụ nhọrọ dị mma nke na-agbasa mgbanwe gburugburu ebe obibi site na ịpị Tab:
$ shopt -s direxpand
$ ./[TAB] # заменяется на...
$ /full/path/to/current_working_folder
$ ~/[TAB] # заменяется на...
$ /full/path/to/home/folder
$ $HOME/[TAB] # заменяется на...
$ /full/path/to/home/folder
Mwepụta dị ọcha
4. nlele ọrụ
Nhọrọ a na-akwụsị ịpụ na nnọkọ ma ọ bụrụ na a ka nwere ọrụ na-agba ọsọ na ndabere.
Kama ịpụ, a na-egosipụta ndepụta nke ọrụ emechabeghị. Ọ bụrụ na ị ka chọrọ ịpụ, wee banye ọzọ 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 процесса изменился
Dochie ndị dike
5.globstar
Nhọrọ a na-enye gị ike nnọchi anya! Ọ bụrụ na ị banye:
$ shopt -s globstar
$ ls **
mgbe ahụ shei ga-egosi akwụkwọ ndekọ aha na subdirectories niile recursively.
Na njikọ na direxpand
Ị nwere ike ilele ihe niile dị ala na ndị isi ngwa ngwa:
$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n)
6.extglob
Nhọrọ a na-enyere aka njirimara ndị na-ejikọta ya na okwu oge niile. Mgbe ụfọdụ, nke a bara ezigbo uru:
$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile
N'ebe a, a na-edobe ụkpụrụ ndị ahụ na mbike ma kewapụ ya site na ogwe kwụ ọtọ. Nke a bụ ndị ọrụ dịnụ:
? = dakọtara efu ma ọ bụ otu ihe omume nke ụkpụrụ enyere! = gosi ihe ọ bụla na-adakọghị ụkpụrụ enyere * = efu ma ọ bụ karịa ihe omume + = otu ma ọ bụ karịa ihe mere @ = kpọmkwem otu ihe mere.
Nchedo ihe mberede
7. histverify
Ọ nwere ike ịbụ ntakịrị egwu na mbụ iji iwu mmalite ngwa ngwa sitere na akụkọ nke mbiri !!
и !$
.
Nhọrọ histverify
na-ahapụ gị ka ị buru ụzọ hụ ka Bash si akọwa iwu ahụ tupu ọ na-agba ọsọ:
$ shopt -s histverify
$ echo !$ # <= По нажатию Enter команда не запускается
$ echo histverify # <= Она сначала демонстрируется на экране,
histverify # <= а потом запускается
8. Noclobber
Ọzọ, iji chebe megide ihe mberede, ya bụ site na idegharị faịlụ nke dịbu na onye ọrụ redirect (>
). Nke a nwere ike ịbụ ọdachi ma ọ bụrụ na ịnweghị nkwado ndabere.
Nhọrọ set -С
machibido idegharị ihe dị otú ahụ. Ọ bụrụ na ọ dị mkpa, ịnwere ike ịgafe nchebe site na iji onye ọrụ >|
:
$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$
isi: www.habr.com