කුඩා දන්නා බාෂ් විකල්ප අටක්

සමහර Bash විකල්ප හොඳින් දන්නා අතර බොහෝ විට භාවිතා වේ. උදාහරණයක් ලෙස, බොහෝ අය පිටපතේ ආරම්භයේ ලියනවා

සකසන්න -එක්ස්ට්‍රේස්

නිදොස්කරණය සඳහා,

වැරදීමක් සකසන්න

වැරදීමකින් හෝ පිටවීමට

set -o errunset

කැඳවන විචල්‍යය සකසා නොමැති නම් පිටවීමට.

නමුත් වෙනත් බොහෝ විකල්ප තිබේ. සමහර විට ඒවා මනස් වල ව්‍යාකූල ලෙස විස්තර කර ඇත, එබැවින් මම මෙහි වඩාත් ප්‍රයෝජනවත් ඒවා කිහිපයක් පැහැදිලි කිරීම සමඟ එකතු කර ඇත්තෙමි.

සටහන: Macs සතුව මෙම සියලු විකල්ප නොමැති bash හි පැරණි අනුවාදයක් (3.x වෙනුවට 4.x) තිබිය හැක. මෙම අවස්ථාවේදී, බලන්න මෙහි හෝ මෙහි.

set හෝ shopt?

bash විකල්ප සැකසීමට ක්‍රම දෙකක් තිබේ: ස්ක්‍රිප්ට් එකකින් හෝ විධාන රේඛාවෙන්. ඔබට බිල්ට් විධාන භාවිතා කළ හැකිය set и shopt. දෙකම කවචයේ හැසිරීම වෙනස් කරයි, එකම දේ කරන්න (විවිධ තර්ක සමඟ), නමුත් ඒවායේ වෙනස් වේ සම්භවය... විකල්ප set පරාමිති වන අතර අනෙකුත් කවචවල පරාමිතීන්ගෙන් උරුම වී හෝ ණයට ගෙන ඇත shopt bash හි නිර්මාණය කරන ලදී.

ඔබට වත්මන් විකල්ප බැලීමට අවශ්‍ය නම්, ධාවනය කරන්න:

$ set -o
$ shopt

විකල්පය සක්රිය කිරීමට set දිගු හෝ කෙටි සින්ටැක්ස් භාවිතා වේ:

$ set -o errunset
$ set -e

බලපෑම සමාන වේ.

විකල්පය අක්‍රිය කිරීමට, ඔබ අඩුවක් වෙනුවට ප්ලස් එකක් දැමිය යුතුය:

$ set +e

දිගු කලක් තිස්සේ මට මෙම වාක්‍ය ඛණ්ඩය මතක තබා ගත නොහැකි වූයේ තර්කනය වැරදි බව පෙනුන බැවිනි (අඩු ලකුණක් විකල්පය සක්‍රීය කරයි, සහ වැඩි ලකුණක් එය අක්‍රීය කරයි).

В shopt (වඩා තාර්කික) කොඩි විකල්ප සක්‍රීය කිරීමට සහ අක්‍රිය කිරීමට භාවිතා කරයි -s (කට්ටල) සහ -u (නොසැකසූ):

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

නාමාවලි වෙනස් කිරීම

නාමාවලි සමඟ වැඩ කිරීමට ඔබට උපකාර වන විකල්ප කිහිපයක් තිබේ.

1.cdspell

මෙම සැකසුම සමඟ, bash ටයිප් කිරීමේ දෝෂ තේරුම් ගැනීමට පටන් ගන්නා අතර ඔබ වැරදි ලෙස අක්ෂර වින්‍යාස කර ඇති ෆෝල්ඩරය වෙත ඔබව ගෙන යනු ඇත.

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

මම මෙම විකල්පය වසර ගණනාවක් තිස්සේ භාවිතා කර ඇති අතර ඉතා කලාතුරකින් (සමහර විට වසරකට වරක්) එය ඉතා අමුතු තීරණයක් ගනී. නමුත් වෙනත් දිනවල cdspell කාලය ඉතිරි කරයි, වචනාර්ථයෙන් සෑම දිනකම.

2. autocd

ඔබ බහුවිධ ඇතුළත් කිරීම්වල අකාර්යක්ෂමතාව පිළිගැනීමට අකමැති නම් cd, එවිට ඔබට X විධානය නොමැති නම් X ෆෝල්ඩරය වෙත යාමට මෙම විකල්පය සැකසිය හැක.

$ shopt -s autocd
$ abcdefg
$ cd ..

ස්වයං සම්පූර්ණ කිරීම සමඟ ඒකාබද්ධව, මෙය ඔබට ඉක්මනින් ෆෝල්ඩර අතර පැනීමට ඉඩ සලසයි:

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

ෆෝල්ඩරය නම් කරන්න එපා rm -rf * (ඔව්, මාර්ගය වන විට, මෙය හැකි ය).

3.direxpand

මෙය Tab එබීමෙන් පරිසර විචල්‍යයන් පුළුල් කරන සිසිල් විකල්පයකි:

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

පිරිසිදු ප්රතිදානය

4. චෙක්පත්

පසුබිමේ තවමත් වැඩ ක්‍රියාත්මක වේ නම් මෙම විකල්පය සැසියෙන් ඉවත් වීම නවත්වයි.

පිටවීම වෙනුවට, නිම නොකළ කාර්යයන් ලැයිස්තුවක් දර්ශනය වේ. ඔබට තවමත් පිටවීමට අවශ්‍ය නම්, නැවත ඇතුල් කරන්න 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 процесса  изменился

ආදේශන සුපිරි බලවතුන්

5.ග්ලෝබ්ස්ටාර්

මෙම විකල්පය ඔබට ආදේශන සුපිරි බලතල ලබා දෙයි! ඔබ ඇතුල් කරන්නේ නම්:

$ shopt -s globstar
$ ls **

එවිට shell මඟින් සියලුම නාමාවලි සහ උප බහලුම් ප්‍රත්‍යාවර්තව පෙන්වනු ඇත.

සංයෝජනයක් සහිතව direxpand ඔබට ධූරාවලියේ පහළ සියල්ල ඉක්මනින් බැලිය හැක:

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

6.extglob

මෙම විකල්පය සාමාන්‍ය ප්‍රකාශන සමඟ බහුලව සම්බන්ධ වන විශේෂාංග සබල කරයි. සමහර විට මෙය ඉතා ප්රයෝජනවත් වේ:

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

මෙහිදී රටා වරහන් තුළ තබා සිරස් තීරුවකින් වෙන් කර ඇත. පවතින ක්‍රියාකරුවන් මෙන්න:

? = දී ඇති රටා වල ශුන්‍ය හෝ එක් සිදුවීමකට ගැලපේ! = දී ඇති රටාවන්ට නොගැලපෙන සියල්ල පෙන්වන්න * = ශුන්‍ය හෝ වැඩි සිදුවීම් + = එක් හෝ වැඩි සිදුවීම් @ = හරියටම එක් සිදුවීමක්

අනතුරු ආරක්ෂාව

7. histverify

කෙටි යෙදුම් ඉතිහාසයෙන් ඉක්මන් දියත් කිරීමේ විධාන භාවිතා කිරීම මුලදී ටිකක් බිය විය හැක !! и !$.

විකල්පය histverify විධානය සැබවින්ම ක්‍රියාත්මක වීමට පෙර Bash එය අර්ථ නිරූපණය කරන්නේ කෙසේදැයි බැලීමට ඔබට මුලින්ම ඉඩ දෙයි:

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

8. නොක්ලොබර්

නැවතත්, අනතුරු වලින් ආරක්ෂා වීමට, එනම් යළි-යොමු ක්‍රියාකරු සමඟ දැනටමත් පවතින ගොනුවක් උඩින් ලිවීමෙන් (>) ඔබට උපස්ථයක් නොමැති නම් මෙය ව්‍යසනයක් විය හැක.

විකල්පය set -С එවැනි උඩින් ලිවීම තහනම් කරයි. අවශ්ය නම්, ඔබට ක්රියාකරු භාවිතයෙන් ආරක්ෂාව මඟ හැරිය හැක >|:

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

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න