Агар шумо қадамҳои аввалини худро ҳамчун скриптер дар системаҳои оператсионии Unix гузошта истода бошед, шумо пай бурдед, ки чӣ қадар хати коди #!/bin/bash истифода мешавад. Фаҳмидани маъно ва аҳамияти онҳо метавонад ба шумо дар навиштани скриптҳои бештар муассир ва боэътимоди Bash кӯмак кунад.. Дар ин вуруд шумо тамоми мафҳумҳои асосиро хоҳед ёфт, ки барои беҳтар фаҳмидани он шумо бояд азхуд кунед.
Оддӣ карда гӯем, хати #!/bin/bash, ки бо номи "shabang" ё "hashbang" низ маълум аст, механизмест, ки ба системаи оператсионӣ мегӯяд, ки кадом барномаро барои тафсири рамзи зерин истифода бурдан лозим аст. Ҳоло, фаҳмидани он, ки он чӣ гуна кор мекунад ё кай истифода бурдани он метавонад каме печида бошад. Аз ин рӯ, мо дар зер маънои пурраи онро дар партави дигар истилоҳоту мафҳумҳои алоқаманд муфассал баён мекунем.
#!/bin/bash чӣ маъно дорад? Асосҳо

Барои фаҳмидани маънои #!/bin/bash муҳим аст, ки баъзе мафҳумҳои асосии марбут ба барномасозӣ баррасӣ шаванд. Бояд дар хотир дошт, ки Баш а забони барномасозии скрипт ба таври васеъ дар системаҳои оператсионии Unix монанд, ба монанди Linux ва macOS истифода мешавад. Инчунин ҳамчун тарҷумони сатри фармон (Shell) кор мекунад, ки бо он шумо метавонед скриптҳо ва дигар файлҳоро бо тамдиди .sh иҷро кунед.
Аз ин рӯ, ҳангоми навиштани скрипт ба забони Баш одат шудааст, ки файлро бо сатри #!/bin/bash оғоз кунед. Зеро? Зеро ин рох ба системаи оператсионӣ гуфта мешавад, ки барои шинохтан ва иҷро кардани код кадом тарҷумони фармонро истифода барад. Дар ин ҳолат, ба шумо гуфта мешавад, ки файли bash-ро бо shell bash иҷро кунед.
Аксари системаҳои оператсионии Unix ба таври нобаёнӣ shell-ро ҳамчун тарҷумони фармон истифода мебаранд, аз ин рӯ зарурати муайян кардани он вуҷуд надорад. Бо вуҷуди ин, баъзан қабати пешфарз барои bash танзим карда намешавад, ки иҷрои файлро ғайриимкон месозад. Аз ин рӯ, истифодаи хати #!/bin/bash ҳамчун нуқтаи ибтидоӣ барои ҳама скриптҳои дар Bash сохташуда таҷрибаи хуб аст. Ин кафолат медиҳад, ки қабати дуруст скриптро, новобаста аз муҳити он, ки дар он иҷро мешавад, иҷро мекунад.
Чаро онро хатти "шабанг" ё "хашбанг" меноманд?

Тавре ки мо дар оғоз гуфтем, хати #!/bin/bash дар муҳити Unix ҳамчун "shabang" ё "hashbang" маълум аст. Ин истилоҳ аз иттиҳоди номҳои ду аломати аввал (#!) бармеояд: "шаш" ё "хэштег" (#) ва рамзи "банг" (!). Пас, Шабанг (she-bang) дар компютер ин пайдарпаии аломатҳои рақам ва аломатҳои нидо дар оғози скрипти барномасозӣ мебошад.
Дар асл, вазифаи шебанг аст ба системаи оператсионӣ бигӯед, ки кадом тарҷумонро барои иҷрои скрипт истифода барад. Ин нишондод ба таври васеъ истифода мешавад Unix ва Linux, ки дар он скриптҳо барои автоматикунонии вазифаҳо ва идоракунии система муҳиманд. Баъзехо намунаҳои маъмули ин пайдарпаии аломатҳои Онҳо чунинанд:
- #!/bin/bash: Скриптро бо истифода аз қабати Bash бо роҳи /bin/bash иҷро кунед.
- #!/bin/sh: Скриптро бо Bourne ё дигар қабати мувофиқ иҷро кунед.
- #!/usr/perl-T: Скриптро бо истифода аз perl бо опсияи чекҳои доғ иҷро кунед.
- #!/bin/csh-f: Скриптро бо истифода аз қабати C ё дигар мувофиқ иҷро кунед.
- #!/usr/bin/env python: Скриптро бо истифода аз версияи дурусти тарҷумони python иҷро кунед.
Чаро истифодаи хати шебанг дар скрипти Bash муҳим аст?

Ҳангоми сохтани скриптҳо бо Bash, дар сатри аввали файл навиштани shebang хеле муҳим аст. Ин тараф, Ҳангоми иҷро кардани скрипт, системаи оператсионӣ сатри аввалро мехонад ва тарҷумонро муайян мекунад. Сипас система барномаи bash-ро ба хотира бор мекунад, ки дар навбати худ скриптро сатр ба сатр мехонад, ҳар як фармонро тафсир ва иҷро мекунад.
Тавре мебинед, Бо нишон додани bash дар хати shebang, шумо боварӣ ҳосил мекунед, ки скрипт дуруст иҷро карда мешавад. Дар хотир доред, ки тарҷумонҳои фармонҳои дигаре ҳастанд, ба монанди Python ва Perl, ки синтаксис ва функсияҳои гуногун доранд. Агар шумо муайян накунед, ки кадоме аз он истифода мешавад, системаи оператсионӣ бояд тахмин кунад, ки ин иҷрои скриптро суст мекунад ё имконнопазир мегардонад. Дарвоқеъ, шумо бояд ҳар дафъае, ки скрипт иҷро мешавад, тарҷумонро дастӣ муайян кунед, ки ин метавонад ба хатогиҳо оварда расонад.
Инчунин, сатри #!/bin/bash -ро дар скриптҳои bash илова кунед имкон медиҳад, ки ин файлҳо дар системаҳои гуногуни амалиётӣ бемаънӣ кор кунанд. Албатта, барои ин имконпазир аст, тарҷумони фармони Bash бояд қаблан дар система насб карда шавад. Дар аксари ҳолатҳо, Linux ва macOS онро бо нобаёнӣ насб кардаанд. Аз тарафи дигар, агар шумо системаи оператсионии Microsoft-ро истифода баред, шумо бояд қадамҳои муайянро иҷро кунед Bash-ро дар Windows 10 насб кунед e Bash-ро дар Windows 11 насб кунед.
Хулоса: Хати #!/bin/bash
Хулоса, мо гуфта метавонем Хати #!/bin/bash барои ҳар як скрипти Bash муҳим аст. Ин нишондод ба шумо имкон медиҳад, ки тарҷумаи фармонро, ки барои иҷрои сатрҳои зерини код зарур аст, нишон диҳед. Фаромӯш накунед, ки ҳамеша онро дар аввали скриптҳои худ дохил кунед, то хондан ва иҷрои дурусти онҳоро таъмин кунед.
Аз хурдӣ ман ба ҳама чизҳои илмӣ ва технологӣ, бахусус он пешрафтҳое, ки ҳаёти моро осонтар ва гуворотар мекунанд, таваҷҷӯҳ доштам. Ман дӯст медорам, ки аз хабарҳо ва тамоюлҳои охирин огоҳ бошам ва таҷрибаҳо, ақидаҳо ва маслиҳатҳои худро дар бораи дастгоҳҳо ва гаҷетҳое, ки истифода мекунам, мубодила кунам. Ин боис шуд, ки ман каме бештар аз панҷ сол пеш нависандаи веб шавам ва асосан ба дастгоҳҳои Android ва системаҳои амалиётии Windows тамаркуз кунам. Ман омӯхтам, ки мафҳумҳои мураккабро бо ибораҳои оддӣ шарҳ диҳам, то хонандагони ман онҳоро ба осонӣ фаҳманд.