Bash Kuluhlelo lwekhompyutha olunomsebenzi wokuhumusha ama-oda. Kususelwa kugobolondo le- Unix futhi yabhalelwa iphrojekthi I-GNU ukuba yi-Shell ezenzakalelayo ekusabalalisweni okuningi kwe I-GNU / Linux. Igama lakhe yisifingqo se Igobolondo le-Bourne-Again (enye igobolondo bourne), enza umdlalo ngamagama (ukuzalwa kabusha kusho ukuzalwa kabusha) mayelana Igobolondo le-Bourne (sh), owayengomunye wabahumushi bokuqala be-Unix.
Namuhla sizokhombisa eminye imibhalo ye-Shell engaba wusizo kakhulu konjiniyela. Iningi lisebenza kunoma yiliphi igobolondo Unix, yize ezinye zidinga ukuthi zenziwe ngqo ngu Bash.
Vimbela abasebenzisi abangenalo ilungelo ekusebenziseni iskripthi
Eminye imibhalo yenza imisebenzi yokuphatha ngakho-ke singafuna kuphela umsebenzisi wezimpande ukusebenzisa iskripthi. Kuleso simo singasebenzisa into enjengale:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ser ejecutado por el usuario root" 1>&2
exit 1
fi
Vumela ukwenziwa kweskripthi kumsebenzisi othile kuphela
Ngokufana nekhodi engenhla, singahle sifune kuphela umsebenzisi othile ukusebenzisa iskripthi. Sikwenza lokhu:
#!/bin/bash
AUTHORIZED_USER="usuario_permitido"
if [ $USER != $AUTHORIZED_USER ]; then
echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2
exit 1
fi
Qinisekisa ukuthi insiza / inqubo iyasebenza
Uma sifuna ukwazi ukuthi kunezinqubo zanoma iyiphi insizakalo noma uhlelo olusebenzayo singasebenzisa lo mbhalo (kulokhu kuqinisekisa ukuthi idimoni le- Apache iyasebenza):
#!/bin/sh
SERVICE='httpd'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
echo "El servicio $SERVICE esta ejecutandose"
else
echo "Chanfle! El servicio $SERVICE esta detenido"
fi
Dala ifayela lokukhiya
Kwesinye isikhathi kufanele siqiniseke ukuthi iskripthi asihambi izikhathi ezimbili noma ngaphezulu ngasikhathi sinye. Ngalokhu singasebenzisa amafayela wokukhiya. Le nguqulo elula yeskripthi esivumela ukuthi senze lokhu:
#!/bin/bash
lockfile=/var/lock/loquesea.lock
if [ ! -e $lockfile ]; then
touch $lockfile
echo "hago muchas cosas importantes aqui"
rm $lockfile
else
echo "ya hay otro proceso corriendo"
fi
Kulokhu, kuqinisekiswa ukuthi ifayili noma yini.lock khona. Uma kwenzeka sikhona, iskripthi ASENZI imisebenzi yaso. Uma ingekho, idala ifayili, iqhube imisebenzi edinga ukuyenza, futhi iyisuse. Kepha, lokhu akuthembekile ngokuphelele. Yini engenzeka uma ngenkathi iskripthi sethu sisebenza uvalwa ngokungazelelwe?
Kuleso simo ifayili lokukhiya belingeke lisuswe, ngakho-ke ngeke lisivumele ukuthi sisebenzise iskripthi futhi. Ukumboza lawo macala, singasebenzisa umyalo wesicupho esivumela ukuthi senze imiyalo uma iskripthi sethu siphela ngokungalindelekile. Le inguqulo esezingeni eliphakeme kakhulu futhi esindisa i-PID yeskripthi esiyisebenzisa ngaphakathi kwefayela lokukhiya:
#!/bin/bash
lockfile=/var/lock/loquesea.lock
if ( set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null;
then
trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT
echo "hago muchas cosas aqui tranquilamente"
rm -f "$lockfile"
trap - INT TERM EXIT
else
echo "Ya hay otro proceso de este script ejecutandose"
echo "corriendo con el PID: $(cat $lockfile)"
fi
Ake siqonde umyalo kangcono kancane Umgibe. I-syntax yayo ngokuyisisekelo yile: isiginali yomyalo wesicupho [isignali…]; lapho isiginali iyisiginali yokuqeda ofuna ukuyibamba. Uma ufuna ukubona uhlu lwezimpawu ezikhona ungasebenzisa umyalo kill -l. Ngecala langaphambilini, kusetshenziswe izimpawu ze-INT (ithwebula ukuqedwa okukhiqizwe yi-Ctrl + c), ISIKHATHI (ukuqedwa okukhiqizwe ngumyalo wokubulala) futhi Phuma (ukunqanyulwa okujwayelekile kweskripthi, mhlawumbe kungenxa yokuthi ayisekho imigqa ezosebenza noma ngoba ihlangabezana nomyalo wokuphuma).
Izinketho zemenyu
Ukwenza imenyu lapho sivumela umsebenzisi ukuthi akhethe uchungechunge lwezinketho esingasebenzisa uhlelo olulandelayo:
#!/bin/bash
clear
while :
do
echo " Escoja una opcion "
echo "1. quien soy?"
echo "2. cuanto espacio tengo"
echo "3. que es esto?"
echo "4. Salir"
echo -n "Seleccione una opcion [1 - 4]"
read opcion
case $opcion in
1) echo "este eres:";
whoami;;
2) echo "tienes esto";
df;;
3) uname -r;;
4) echo "chao";
exit 1;;
*) echo "$opc es una opcion invalida. Es tan dificil?";
echo "Presiona una tecla para continuar...";
read foo;;
esac
done
Cela isiqinisekiso ngaphambi kokuqalisa iskripthi
Kwesinye isikhathi kuyasiza ukuthi umsebenzisi aqinisekise ukwenziwa kweqoqo lezitatimende, okungukuthi, umlayezo ojwayelekile ocela umsebenzisi ukuthi abhale yebo noma cha. Singakwenza lokhu kanjena:
#!/bin/bash
while true; do
echo
read -p "esta seguro de hacer lo que sea que vaya a hacer " yn
case $yn in
yes ) break;;
no ) exit;;
* ) echo "por favor responda yes o no";;
esac
done
echo "si se ejecuta esto es que aceptaste"
Ukuphela kwendatshana. Kulula kakhulu 😀
Hlela: Kufanele uqaphele ngezikhala nangamathebhu, okuthi ngasizathu simbe awaphumi ¬¬
Fuck bakhulu O_O ... kuzosiza kakhulu ezintweni zami ezincane engizenza eBash 😀
Izikripthi zikhulu kakhulu! Yeka umnikelo omuhle ngokungathi sína, yilokho ebengikufuna.
PS: Isithangami siphansi.
Yebo, iseva lapho kufakwe khona isithangami ayixhunyiwe ku-inthanethi, asazi ukuthi kungani ... sibhale i-imeyili kumngane oyinakekelayo, ukubona ukuthi usiphendula kanjani 🙂
Ukubingelela
Hhayi-ke, asethembe ukuthi akuyona into ebucayi leyo.
Ngabe lawo "makhali" afakiwe kwiCode Ninja? XD
Ngiyawathanda amandla ka-bash 😉 futhi bangitshele ukuthi ulimi lwe-C lwenzelwe ini…, ngoba kuskripthi seShell kunemiyalo eminingi ejwayelekile.
Ngiyabonga, ngithande kakhulu
Ukuqinisekiswa kwamapharamitha wokufaka kusiza kakhulu. Bengingazi ukuthi ngingawenza kanjani amamenyu =)
Okukhazimulayo…. manje senginganika "ubulukhuni" kumbhalo wami churros lol
Kuyintokozo enkulu ukubona ukuthi umsebenzi wethu ophansi eCodeNinja uwusiza kanjani umphakathi wamazwe omhlaba we-linux
Impela! 🙂
Konke ukusiza nokusiza ngokubambisana, hhayi ukudala amalangabi, akunjalo? 😉
Iskripthi senqubo esisebenzayo singathuthukiswa kancane ngokubeka inketho yokukhetha inqubo ofuna ukuyazi ngayo, kungabonakala okufana nalokhu:
#! / bin / bash
nanela "Khetha isevisi"
funda INKONZO
# INKONZO = 'mysql'
uma i-ps ax | grep -v grep | grep $ SERVICE> / dev / null
ke
i-echo "$ SERVICE service iyasebenza"
futhi
bhala "insiza engu- $ SERVICE imisiwe"
Ngisebenza kakhulu ngemibhalo yakho, kepha ngifuna iskripthi esikhethekile sokuxazulula inkinga enginayo, okulandelayo: Sine-server yohlelo lokusebenza eNkampanini abasebenzisi bangaphakathi abaluthola ngocingo, bese benza uhlelo olukhethekile lokho kukhawulelwe Kumalayisense, abasebenzisi basebenzisa kabi futhi bavule ama-telnet angaphezu kwelilodwa ukuthatha amalayisense ama-2 noma ngaphezulu, ngakho-ke iskripthi engikucabangile ukuthi ngenye indlela, hlola ukuthi iyiphi inqubo ye-telnet engasebenzi ngaphezu kwamahora ama-2 ngakho-ke thumela ukubulala kuleyo pid, ungangisiza?
Faka uhlelo olulandelayo
ukufaneleka ukufaka i-autolog
Nefayela lokumisa onalo ku- /etc/autolog.conf
Kuhle, mngani, ngingakubuza umbuzo, ngidinga umbhalo weShell onezinketho futhi ngiwusekele kowakho futhi usebenza kahle, kepha enye yezinketho kufanele ithumele ama-imeyili (kusetshenziswa i-postifix), icela isihloko, umbhalo nabemukeli esibukweni nokuthi yini okuthumelayo nokuhlola ukuthi kuthunyelwe kahle yini, nge-mailq ngiyabona ulayini futhi ngibone ukuthi uthunyelwe, kepha ngithumela kanjani ama-imeyili ngomyalo ngisebenzisa okuguquguqukayo okutholile isihloko, umbhalo nabamukeli ? 🙁
Escríbeme a mi email (kzkggaara[at]desdelinux[dot]net) para hablar con más calma, te ayudo con mucho gusto 🙂
Kuhle ukubonga mngani, uphasile!
Sawubona okuhle.
Ngithole lezi zibonelo ezinhle kakhulu lapho bengidinga imenyu.
Sengikuqalile ukukwenza futhi angikwazi ukukusebenzisa (ezinyathelweni zangaphambilini).
Nginezinto ezingama-247, ezibhekisa ezizindeni ezahlukahlukene zezindawo.
Engikudingayo imenyu kusuka lapho ngingakhetha khona izwe:
#! / bin / bash
Kucacile
ngenkathi:
do
echo »Khetha izwe ozozama»
echo «1. I-Afghanistan (AF) »
yenanela «2. I-Albania (AL) »
echo «3. I-Germany (DE) »
yenanela «5. I-Angola (AO) »
echo «6. I-Anguilla (AI) »
.. futhi iyaqhubeka kuze kube ngu-247
echo -n "Khetha inketho [1 - 247]"
funda inketho
icala $ option in
1) echo "nguwe lo:"; whoami ;;
2) echo "unakho lokhu"; df ;;
3) kunanela ""; uname -r ;;
4) echo "sala"; phuma 1 ;;
5) echo "nguwe lo:"; whoami ;;
6) echo "nguwe lo:"; whoami ;;
… Futhi iyaqhubeka kuze kube ngu-247
*) i-echo «$ opc inketho engavumelekile. Kunzima kangaka? ";
nanela "Cindezela ukhiye ukuze uqhubeke ...";
funda foo ;;
ukuthi uC
kwenziwe
Ukuziphatha kanje:
Noma iyiphi inketho ngaphandle kwe-4, okukhiphayo, isusa inombolo efakiwe bese ilinda inombolo entsha.
Kufakwa u-4 kuyaphuma.
Uma ngifaka ikhodi ka-4 kunoma yimuphi omunye umugqa (ake sithi i-150) iphuma ngokulinganayo ngaphandle kwezinkinga.
Ngizamile nokufaka ikhodi ngale ndlela:
151) echo "nguwe lo:";
ngingubani ;;
nomphumela ofanayo.
Ngicabanga ukuthi ngabe kukhona yini okungcono ongakhetha kukho kwimenyu ende kangako futhi nami ngenza okungalungile.
Usizo luzokwaziswa kakhulu, ngiyabonga
okuhle kakhulu ... ngicabanga ukuthi kuhle kakhulu ukungena egobolondweni
I-gracias
kuhle, hey ngingawenza kanjani umsebenzi wami we-bash ngefayela
isibonelo:
layisha.sh fotodelavecina.jpg
ngicabanga ukuthi umbhalo wami we-bash "upload.sh" unemininingwane yokufinyelela ku-ftp yami
imikhonzo nokubonga 😀
Ndoda enhle, ngiyabonga kakhulu ngayo yonke imibhalo, ngisethe isiphakeli seCentOS futhi awazi ukuthi la mathempulethi eza kanjani kimi, ngicela ungithinte nge-imeyili. Ngifuna ukuphakamisa okuthile kuwe
Kungani usebenzisa i-read foo lapho wenza imenyu? izimpendulo ezisheshayo engizidingayo