Raha nahita ity pejy ity ianao tamin'ny fikarohana, dia mety manandrana mamaha olana amin'ny fampandehanana bash ianao.
Angamba ny tontolo iainanao bash dia tsy mametraka fari-piainan'ny tontolo iainana ary tsy azonao ny antony. Mety efa niraikitra zavatra tamin'ny rakitra bash boot isan-karazany na ny mombamomba azy na ny rakitra rehetra ianao mandra-pahombiazana.
Na izany na tsy izany, ny tanjon'ity fanamarihana ity dia ny fametrahana ny fomba fanombohana ny bash araka izay azo atao mba hahafahanao miatrika olana.
Kisary
Ity tabilao mikoriana ity dia mamintina ny dingana rehetra rehefa mihazakazaka bash.
Andeha hojerentsika akaiky ny ampahany tsirairay.
Midira Shell?
Voalohany dia mila misafidy ianao na ao anaty shell login na tsia.
Ny akora fidirana no akorandriaka voalohany ampidirinao rehefa miditra amin'ny fivoriana ifanakalozan-kevitra ianao. Ny shell login dia tsy mila solon-anarana sy tenimiafina. Azonao atao ny manery ny akora fidirana mba hanomboka amin'ny fampidirana saina --login
rehefa antsoina bash
, ohatra:
bash --login
Ny shell login dia mametraka ny tontolo fototra rehefa manomboka ny bash shell ianao.
Interactive?
Avy eo ianao dia mamaritra raha mifandray na tsia ny akorandriaka.
Izany dia azo jerena amin'ny fisian'ny variable PS1
(mametraka ny fampandehanana baiko izy io):
raha [ "${PS1-}" ]; dia manako interactive hafa dia manako tsy interactive fi
Na jereo raha napetraka ny safidy -i
, mampiasa fari-pitsipika manokana -
amin'ny bash, ohatra:
$echo$-
Raha misy marika amin'ny famoahana i
, dia mifampiresaka ny akorandriaka.
Ao amin'ny shell login?
Raha ao anaty shell login ianao dia mitady ny rakitra ny bash /etc/profile
ary mandeha raha misy.
Dia tadiavo ny iray amin'ireo rakitra telo ireo amin'ny filaharana manaraka:
~/.bash_profile ~/.bash_login ~/.profile
Rehefa mahita iray izy dia manomboka izany ary mitsambikina ny hafa.
Amin'ny shell interactive?
Raha ao anaty akora tsy miditra ianao, dia heverina fa efa tao anaty akora fidirana ianao, voarindra ny tontolo iainana ary ho lovana.
Amin'ity tranga ity, ireto rakitra roa manaraka ireto dia tanterahina araka ny filaharany, raha misy izy ireo:
/etc/bash.bashrc ~/.bashrc
Tsy misy safidy?
Raha tsy ao anaty shell login na shell interactive ianao dia ho foana tokoa ny tontolo iainanao. Miteraka fisafotofotoana be izany (jereo etsy ambany momba ny asa cron).
Amin'ity tranga ity, ny bash dia mijery ny variable BASH_ENV
ny tontolo iainanao ary mamorona ny rakitra mifanaraka amin'izany voalaza ao.
Fahasarotana mahazatra sy fitsipiky ny ankihibe
asa cron
95% amin'ny fotoana aho debug bash startup dia satria tsy mandeha araka ny nantenaina ny asa cron.
Ity asa ratsy ity miasa tsara rehefa mihazakazaka amin'ny baiko baiko aho, fa tsy mahomby rehefa mihazakazaka izany amin'ny crontab.
izany antony roa:
- Ny asa Cron dia tsy mifampiraharaha.
- Tsy toy ny script andalana baiko, ny asa cron dia tsy mandova ny tontolo manodidina.
Amin'ny ankapobeny dia tsy ho tsikaritrao na tsy hiraharaha fa ny script shell dia tsy mifandray satria ny tontolo iainana dia mandova avy amin'ny shell interactive. Midika izany fa ny zavatra rehetra PATH
и alias
namboarina araka ny nantenainao.
Izany no antony ilaina matetika ny fametrahana manokana PATH
ho an'ny asa cron toy izao:
* * * * * LALANA=${PATH}:/path/to/my/program/folder myprogram
Scripts mifampiantso
Ny olana mahazatra iray hafa dia rehefa diso ny fanamboarana ny script mba hifampiantso. Ohatra, /etc/profile
manondro ny ~/.bashrc
.
Matetika no mitranga izany rehefa misy olona nanandrana nanamboatra fahadisoana ary toa nandeha ny zava-drehetra. Indrisy anefa, rehefa mila manasaraka ireo karazana fivoriana ireo ianao, dia misy olana vaovao.
Sary Sandboxed Docker
Mba hanandrana amin'ny fampandehanana akorandriaka dia namorona sary Docker aho izay azo ampiasaina hanesorana ny akorandriaka amin'ny tontolo azo antoka.
fandefasana:
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
Dockerfile no misy
Raha hanery ny fidirana sy hanao simulation shell login:
$ bash --login
Hanandrana andian-varimbazaha BASH_ENV
:
$ env | grep BASH_ENV
Ho an'ny debugging crontab
script tsotra dia hotanterahina isaky ny minitra (in /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
Source: www.habr.com