اٺ ننڍا ڄاتل بش جا اختيار

ڪجھ بش جا اختيار سڃاتل آھن ۽ اڪثر استعمال ٿيل آھن. مثال طور، ڪيترائي ماڻهو رسم الخط جي شروعات ۾ لکندا آهن

سيٽ ڪريو -o xtrace

ڊيبگنگ لاءِ،

سيٽ ڪريو-اي ايريڪسٽ

غلطي سان نڪرڻ يا

set-o errunset

نڪرڻ لاءِ جيڪڏهن سڏيو ويو ويريبل مقرر نه آهي.

پر ٻيا ڪيترائي اختيار آھن. ڪڏهن ڪڏهن انهن کي مانس ۾ تمام گهڻي مونجهاري سان بيان ڪيو ويندو آهي، تنهنڪري مون هتي ڪجهه مفيد شيون گڏ ڪيون آهن، وضاحت سان.

نوٽ: ميڪس وٽ بش جو پراڻو ورزن ٿي سگھي ٿو (3.x بجاءِ 4.x) جتي اھي سڀ اختيار موجود نه آھن. هن معاملي ۾، ڏسو هتي يا هتي.

set يا shopt?

بش آپشنز کي سيٽ ڪرڻ جا ٻه طريقا آھن: اسڪرپٽ مان يا ڪمانڊ لائن مان. توھان استعمال ڪري سگھوٿا بلٽ ۾ حڪم 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. سي ڊي اسپيل

هن سيٽنگ سان، bash ٽائپس کي سمجهڻ شروع ڪندو ۽ توهان کي فولڊر ڏانهن وٺي ويندي جنهن جو نالو توهان غلط لکيو آهي.

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

مان ڪيترن سالن کان هي اختيار استعمال ڪري رهيو آهيان ۽ تمام گهٽ (شايد سال ۾ هڪ ڀيرو) اهو هڪ تمام عجيب فيصلو ڪري ٿو. پر ٻين ڏينهن تي cdspell وقت بچائي ٿو، لفظي طور تي هر روز.

2. آٽو سي ڊي

جيڪڏهن توهان ڪيترن ئي داخلائن جي غير موثريت کي قبول ڪرڻ لاءِ راضي نه آهيو cd, پوء توهان هن اختيار کي سيٽ ڪري سگهو ٿا X فولڊر ڏانهن منتقل ڪرڻ لاء جيڪڏهن X حڪم موجود ناهي.

$ shopt -s autocd
$ abcdefg
$ cd ..

خودڪار مڪمل سان گڏ، هي توهان کي جلدي فولڊر جي وچ ۾ ٽپو ڏيڻ جي اجازت ڏئي ٿو:

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

بس فولڊر جو نالو نه ڏيو rm -rf * (ها، رستي ۾، اهو ممڪن آهي).

3. Direxpand

هي هڪ بهترين اختيار آهي جيڪو ٽيب کي دٻائڻ سان ماحولياتي متغير کي وڌائي ٿو:

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

پوء شيل سڀني ڊائريڪٽرن ۽ ذيلي ڊائريڪٽرن کي بار بار ڏيکاريندو.

سان گڏ گڏ 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 توهان کي پهرين ڏسڻ جي اجازت ڏئي ٿي ته بش اصل ۾ هلڻ کان اڳ حڪم جي تعبير ڪيئن ڪري ٿو:

$ 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

تبصرو شامل ڪريو