Izikripthi eziwusizo zeShell kunoma yiluphi uhlelo

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 ¬¬


Amazwana ayi-22, shiya okwakho

Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   KZKG ^ Gaara kusho

    Fuck bakhulu O_O ... kuzosiza kakhulu ezintweni zami ezincane engizenza eBash 😀

  2.   Ren434 kusho

    Izikripthi zikhulu kakhulu! Yeka umnikelo omuhle ngokungathi sína, yilokho ebengikufuna.

    PS: Isithangami siphansi.

    1.    KZKG ^ Gaara kusho

      Yebo, iseva lapho kufakwe khona isithangami ayixhunyiwe ku-inthanethi, asazi ukuthi kungani ... sibhale i-imeyili kumngane oyinakekelayo, ukubona ukuthi usiphendula kanjani 🙂

      Ukubingelela

  3.   Ren434 kusho

    Hhayi-ke, asethembe ukuthi akuyona into ebucayi leyo.

  4.   kwesokunxele kusho

    Ngabe lawo "makhali" afakiwe kwiCode Ninja? XD

  5.   i-taregon kusho

    Ngiyawathanda amandla ka-bash 😉 futhi bangitshele ukuthi ulimi lwe-C lwenzelwe ini…, ngoba kuskripthi seShell kunemiyalo eminingi ejwayelekile.

  6.   Christopher kusho

    Ngiyabonga, ngithande kakhulu

  7.   ingelosi blade kusho

    Ukuqinisekiswa kwamapharamitha wokufaka kusiza kakhulu. Bengingazi ukuthi ngingawenza kanjani amamenyu =)

  8.   Hyuuga_Neji kusho

    Okukhazimulayo…. manje senginganika "ubulukhuni" kumbhalo wami churros lol

  9.   I-raven kusho

    Kuyintokozo enkulu ukubona ukuthi umsebenzi wethu ophansi eCodeNinja uwusiza kanjani umphakathi wamazwe omhlaba we-linux

    1.    KZKG ^ Gaara kusho

      Impela! 🙂
      Konke ukusiza nokusiza ngokubambisana, hhayi ukudala amalangabi, akunjalo? 😉

  10.   diego kusho

    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"

  11.   UJua Carlos C. kusho

    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?

    1.    diego kusho

      Faka uhlelo olulandelayo

      ukufaneleka ukufaka i-autolog

      Nefayela lokumisa onalo ku- /etc/autolog.conf

  12.   Tito kusho

    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 ? 🙁

    1.    KZKG ^ Gaara kusho

      Escríbeme a mi email (kzkggaara[at]desdelinux[dot]net) para hablar con más calma, te ayudo con mucho gusto 🙂

      1.    Tito kusho

        Kuhle ukubonga mngani, uphasile!

  13.   U-Fer kusho

    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

  14.   URaul kuphela kusho

    okuhle kakhulu ... ngicabanga ukuthi kuhle kakhulu ukungena egobolondweni

    I-gracias

  15.   Marcos kusho

    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 😀

  16.   Nezulu ntx kusho

    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

  17.   UGabriel Balderramos kusho

    Kungani usebenzisa i-read foo lapho wenza imenyu? izimpendulo ezisheshayo engizidingayo