Bash: Xaaladaha (haddii-markaa-kale)

Waad salaaman tahay 😀

Markan waxaan ku tusi doonaa sida loo sameeyo qoraal shuruud leh Man uted, oo loo turjumay waa:

Haddii X waxa aad rabto la dhammeeyo, Y ficil ayaa la sameeyaa, haddii aan la dhammaystirin ficil kale ayaa la sameeyaa.

Sharaxaad fudud maya 😀

Hadda, waxaan ka fikiray daqiiqado yar oo ku saabsan tusaale ahaan inaan ku isticmaalo casharradan, dhibaatada soo socota / dhibaatada / xaaladda soo socota ayaa igu soo dhacday:

Waxaan ku jirnaa shabakadayada shirkadda, waxaanan dooneynaa inaan ogaano in kombiyuutarka X uu ku xiran yahay shabakadda. Tan waxaan u sameynaa a script muxuu sameyn doonaa ping xagga kombiyuutarkaas, iyo haddii ay ku jirto shabakad (taasi waa, haddii ay soo celiso ping) ayaa noo sheegi doonta in HAA, ay ku taal shabakadda, haddii kale (taasi waa, kuma xirna shabakadda) waxay noo sheegi doontaa in AAN ku jirin shabakadda.

Marka tan la dhammeeyo, hadda waxaan sharxi doonaa sida loogu wareego shuruudo conditions

Waa tan lambarka:

ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

Ha walwalin, tan ayaan si faahfaahsan kuugu sharixi doonaa 😉

ping waa amarka aan adeegsan doonno, waxayna noo sheegi doontaa haddii PC-gaas uu ku jiro shabakadda. Si aan kuugu sheegno PC-ga aan dooneyno inaan hubino inuu ku jiro shabakadda iyo in kale, waa inaan beddelno IP ADRESS si cad, cinwaanka IP-ga ee PC-ga ee aan dooneyno inaan hubino.

Sidaad arki karto, waxaan saaray «-c 1«, Kaas oo muhiim noo ah. Marka aan kumbuyuutarka fureyno, ficilkani ma joogsanayo (ping-ka) illaa aan iska cadaadino [Ctrl] + [C], sidaas gelinaya-c 1»Waxaan kuu sheegaynaa inaad sameyso kaliya hal xaqiijin (hal isku day ping kaliya) oo aan mid kale sameyn, tani waxay ka dhigeysaa inay isla markiiba istaagto, taasi waa… waa la hubin doonaa in kumbuyuutarku ku jiro shabakada hal mar oo keliya.

Haddii aad wax shaki ah ka qabto arrintan, xanuun malahan ... sidaas ayey yiraahdeen waana ku farxi doonaa inaan mar kale kuu macneeyo 😉

Haatan waxaa imanaya wareegga, maxaa yeelay waxa aan hadda sharraxay waa wax aan ka ahayn amar / tallaabo caadi ah 😀

if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

Si aad taas u fahanto, waxaan kuu sharxi doonaa faahfaahin aad muhiim u ah Bash 🙂

Aqoonta ugu badan ee maadada waxay igu tilmaami kartaa inaan qaldanahay ama wax la mid ah, laakiin haye, waxaan tan ugu qoraa kuwa cusub ama khubaro yar, ilaa iyo inta ay ka fahmayaan markaa weyn 😉

Waxay u dhacdaa sidii sidii Man uted waa wax lamid ah 0 y 1, taasi waa, ama waad nooshahay ama waad dhimatay, markii amar ama ficil la fuliyo: Ama si fiican loo fuliyay Dhib malahan (1), ama qaar baa jiray dhibaato ama baadi (0).

Waxaan fulineynaa tallaabada X ama amarka, wixii aan sameynayna waxaa laga yaabaa in si wanaagsan ama xun loo qabtay, waxaa laga yaabaa inuu qalad lahaa ama uusan ahayn, waana halka ay faahfaahintu ku taal 😉

Haddii waxa aan u dirno inaan sameyno (kiiskan: ping -c 1 IP-CINWAAN) ma uusan bixin qalad waana lagu guuleystey, markaa qiimaha ayey soo celin doontaa: 1 . Haddii kale, oo haddii ficilku (taasi tahay, ping) uusan guuleysan, waxay soo celin doontaa qiime 0.

 Ugu dambeyntiina, waxa koodhka kor ku xusan loola jeedo waa tan:

Haddii qiimaha 0 la soo celiyey markaa

Muuji qoraalka: «Maahan shabakad»

Haddii kale (oo MAYA 0, laakiin 1 la soo celiyo)

Muuji qoraalka: «Hadday ku jirto shabakadda«

Tan aan hadda kuu sharaxay, waxay noogu adeegi doontaa mustaqbalka waxyaabo badan, maxaa yeelay runtii waa waxtar in la yiraahdo haddii tallaabada X ay qalad bixisay, samee tallaabada Y, iyo haddii ay dhacdo in tallaabada X aysan bixin wax qalad, ha tallaabo Z.

Waan ogahay in qaarkood ay xoogaa lug ku yeelan karaan, sidaa darteed waxaan isku dayay inaan ku sharaxo dhowr siyaabood oo kala duwan, anigoo isku dayaya inaan ka dhigo qof walba mid uun ama si kale. Haddii ay dhacdo in qof walboo shaki ku jiro, ii soo sheeg.

Hadda, aan ka dhigno qoraalkeenna 😀

Waa inaan raacno talaabooyinka casharkaan: Bash: Sida loo sameeyo qoraal la fulin karo

Kadibna aan nuqul ka dhigno koodhka soo socda faylkaas (qoraal.sh), iyo dhamaadka aan dhahno «bixitaanka»(Iyadoo aan laga helin xigashooyinka):

ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

Waa inay u egtahay sidan (xusuusnow inay tahay inay u beddeleen IP-ADDRESS-ka IP ay rabaan):

Halkan waxaad ka arki kartaa qoraalka socda:

% CODE1%

Sidaad arki karto, aakhirka wuxuu inoo sheegayaa «Haa waa shabakad»🙂

Waxa ugu muhiimsan halkan waa inaad runtii ka fahamtay tan xaaladaha, sidaa darteed waxaan kaaga tagayaa koodh kale si aad mar kale u sharraxdo, laakiin aragti kale.

read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi

Tan macnaheedu waa mid fudud, waxaan uga tagayaa khadka sharaxaadda sadar ahaan:

Sadarka 1aad: Waxa aan qorno, taasi waxay noqon doontaa qiimaha doorsoomaha «texting»(Iyadoo aan laga helin xigashooyinka).

Sadarka 2aad: Hubi in waxa ku jira doorsoomaha (waxa hadda soo qoray) ay yihiin 3.

Sadarka 3aad: Haddii ay ahaato 3, wuxuu ina tusi doonaa qoraalka «Sax ah»(Iyadoo aan laga helin xigashooyinka).

Safka 4aad: Haddii kale (taasi waa, haddii aynaan qorin 3).

Safka 5aad: Waxay ina tusi doontaa qoraalka «Khaldan»(Iyadoo aan laga helin xigashooyinka).

Safka 6aad: Dhamaadka xaalada.

Sidii ay awoodeen inay ogaadaan, haddii aan dhigno codso ka dibna u dhexeeya laba xigasho («) qoraal, tani waxay sababi doontaa in qoraalkaas lagu soo bandhigo boosteejada. Taasi waa, haddii aan dhigno:

echo "esto es una prueba"

Waxay na tusi doontaa qoraalka ku jira terminaalka: tani waa tijaabo

Laakiin dib ugu noqoshada tusaalahan labaad, waxaan ku tusi doonaa waxtarka (iyo fulinta) qoraalkan labaad oo leh wax aad u FUDUD 😀 typical caadiga ah «waa imisa 1 + 2?«

Waxaan kuu daayay koodhka qoraalka oo dhameystiran:

#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit

Waa tan sida qoraalka u shaqeeyo:

% CODE2%

Iyo sidoo kale ... wax intaa ka badan oo lagu daro.

Tani waa wax aasaasi ah, fudud haa, laakiin wali waxaan isku dayay inaan sharaxaad ka bixiyo sida ugu macquulsan, maxaa yeelay qof walbaa malaha nafta barnaamijiye, marar badanna waxaan u baahanahay inaan sameyno qoraallo sidaan oo kale ah (ama la mid ah), si kasta oo aan waxaan rajeynayaa in qodobkaan qof wax kuu tari doono 🙂

Shaki ama su'aal kasta, cabasho ama soo jeedin fadlan, halkan ku dhaaf, si farxad leh ayaan kaaga jawaabi doonaa sidaasna, dhammaanteen wax yar ayaan ka baranaynaa 😀

Salaan


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   Jahals dijo

    Waxaad tihiin pro !!! * ama *

    1.    KZKG ^ Gaara dijo

      Nah wax aan jirin 😀
      Haddii ay kuu adeegtay oo ay xiiso leedahay, waan ku qanacsanahay 😉

      Salaan sxb

  2.   sax ah dijo

    @ KZKG ^ Gaara,
    anigoo ka hadlaya barnaamijka bash waxaan qabaa su'aal:
    Waa maxay faraqa u dhexeeya ku dhawaaqista doorsoomaha sidan oo kale ah VAR = hello iyo ku dhawaaqistiisa sidan VAR = $ {VAR: -hello}?

    Waan sharxayaa:
    http://pastebin.com/a3cfWXeD

    salaan 😉

    1.    KZKG ^ Gaara dijo

      Waad salaaman tahay 😀
      Hagaag, khabiir kuma ihi bash gebi ahaanba ... runti, wax fikrad ah kama haysto LOL !!
      Markaan ku dhawaaqo doorsoomayaasha waa sidan:
      : ${OPTFOLDER:="/opt/"}

      Laakiin maxaa yeelay marwalba sidan ayaan u sameyn jiray, ma garanayo waxa ay ku kala duwanaan karaan si daacadnimo ah 🙁

  3.   sax ah dijo

    @ KZKG ^ Gaara
    Hagaag waan weydiiyay su'aasha maxaa yeelay runtu waxay tahay anigu ma aanan aqoonin sidoo kale, inta badan waxaan qoraa SlackBuilds runtuna waxay tahay in doorsoomayaasha lagu sharaxay sida VAR1 ay ugu badan yihiin qoraalladan. Raadin deg deg ah oo google ah ayaa iga caawisay inaan caddeeyo su'aashan, waxaan la wadaagayaa qof walba si aan dhammaanteen wax u baranno:

    Qoraal:
    http://pastebin.com/faAQb35w

    Sharaxa:
    Ku dhawaaqida doorsoomayaasha foomka VAR = $ {VAR: -default_value} macnaheedu waa in doorsoomaha VAR uu qaadan doono qiimaha default_value haddii iyo kaliya haddii qiimaha uu yahay mid aan waxba ka jirin ama uusan jirin.

    Tusaale wax ku ool ah:
    Markii la fulinayo qoraalka, waxaa la weydiisanayaa inay soo geliso qiime lagu kaydiyo doorsoomaha VAR, haddii wax la galo waxay muujinaysaa wixii la geliyay. Haddii aynaan waxba galin oo aan riixno Enter waxaan ku dhawaaqeynaa VAR-ka isbeddelka ah inuu yahay wax aan jirin, sidaa darteed waxay muujineysaa default_value

    Thanks.

    1.    KZKG ^ Gaara dijo

      HAHA taas ma aanan ogeyn 😀
      Waayahay, aad baad u mahadsantahay saaxiib ... taasi waa waxa aan ula jeeday dhamaadka maqaalka, ugama jeedo in aan wax baro waxna waa intaas, waan ogahay in aan had iyo jeer wax cusub ku baran doono halkan 😀

      Salaan iyo mahadsanidiin markale.

      1.    sax ah dijo

        waad saxantahay, qofku halkaan ayuu ku bartaa dhowr waxyaalood.

        salaan iyo ciid wanaagsan !! 😀

  4.   Lucas Matthias dijo

    Aad u wanaagsan oo si heer sare ah loo sharaxay +1, waqtiga ay kugu qaadan doonto ...
    laakiin waan uqalmaa dadaalka 😉

    1.    KZKG ^ Gaara dijo

      Runtii waxaan qoray 80% kaliya 1 maalin, waxay igu qaadatay waqti aad u dheer inaan daabaco kaliya maxaa yeelay internetkeygu ima ogolaanayo
      Waad ku mahadsantahay faalladaada 😉

  5.   Hugo dijo

    Hab kale oo loo sameeyo waa iyada oo la adeegsanayo DNS, maaddaama mararka qaarkood shabakadaha ay leeyihiin maamuuska ICMP:

    (martigeliyaha -ta IP-ADDRESS> / dev / null 2> & 1) && echo "Waxay kuxirantahay shabakad"

    Waxaad sidoo kale ogaan doontaa in tusaalahan hubinta qiimaha celinta ay tahay mid maldahan 😉

    1.    KZKG ^ Gaara dijo

      Adiga sida had iyo jeer saaxiib ah, oo leh tilmaamo aanan aqoon gebi ahaanba HAHAHA.
      Mahadsanid, faallooyinka waa la mahadiyey oo hehe ... wax kale oo cusub oo aan barto 😀

  6.   Taariikhda dijo

    Gracias

    🙂

  7.   Baras_Ivan dijo

    In kasta oo dhowr maalmood ay ka soo wareegtay markii la daabacay mowduucan, wax badan ayey ii adeegtay, hadda oo aan qoraal ku sameeyay bash .. Mahad Gaara ..

  8.   Edgar navarro dijo

    Doc. Waad ku mahadsantahay kaalmada aad wax iga siisay.

    Kaliya su'aal, sidee baan u sameeyaa in marka hal kumbuyuutar uu si toos ah u xiro tuubbada kan kale wuxuu beddelayaa IP. Tan ayaan hayaa

    in la beddelo IP-ga
    #! / bin / bash
    ping -c 10 192.168.1.50 # haddii uusan si otomaatig ah u kicin
    ifconfig eth0 192.168.1.50 netmask 255.255.255.0 faafin 192.168.1.0
    ifconfig eth0 hoos
    ifconfig eth0 kor

  9.   Ibraahim dijo

    maxaa yeelay markaad isbarbar dhigayso haddii aad isticmaasho calaamada su'aasha? waa maxay farqiga u dhexeeya dhigista? warqad kale

    1.    KZKG ^ Gaara dijo

      $? macnaheedu waa 'soo saaristii hore ama soo saariddii', taasi waa, haddii ay dhacdo natiijada amarkii hore ... 🙂

      1.    Andrés dijo

        Waxaa jirta wado kale oo lagu gaari karo isla natiijada, adoo u gudbinaya amarka ping si toos ah dood ahaan haddii:

        haddii ping -c 1 IP-CINWAAN; markaa
        dhagayso "Haa waa shabaqa"
        kale
        ku dhawaaqa "Maaha shabakadda"
        fi

        Maxaa dhacaya ayaa ah haddii la qiimeeyo qiimaha soo celinta amarka ee aad ku dhaafto dood ahaan, haddii ay soo noqoto 0 waa run, wax kasta oo kale waa been. Qaybaha laba jibbaaran waxay u dhigmaan amarka tijaabada. Laakiin waad u gudbin kartaa amar kasta dood ahaan (illaa inta amarku soo celinayo waxoogaa qiimo ah).

  10.   Salaan dijo

    Waad salaaman tahay, sidee ayaan ugu fuliyaa qoraal.sh isticmaaleha X ee qoraalka waxaan ku abuuraa isticmaale Y, oo adeegsadahaas Y wuu sii wadaa fulinta script.sh

    Tan ma la sameyn karaa ??

  11.   kuktos dijo

    Aad u xiiso badan, mahadsanid!

  12.   Francisco dijo

    Waad ku mahadsantahay wax ku biirinta, waxaan ahaa saacad aan ku fahmo xD, laakiin waan fahmay !!!!.

  13.   Eloy dijo

    Qoraalku waa hagaagsan yahay. Xisaab ahaan sidoo kale waxaa loo samayn karaa sida ($? == 0) haddii ay u dhigantaa eber ma saarna shabakadda, haddii kale waxay ku jirtaa shabakadda. Iyo haddii aan weli dooneyno inaan ka dhigno wax yar oo is-dhexgal ah, waxaan dhihi karnaa:
    echo -n Gali IP:
    akhri ip
    ping -c 1 $ ip

  14.   Dario dijo

    Waad salaaman tihiin, aad ayaan ugu cusbahay tan, waxaan isku dayayaa inaan sameeyo lambar tikidh (alphanumeric) aniga oo akhrinaya waxaanan rabaa in hadii waxa la soo galay uu leeyahay qaab sax ah (ABC-123456) fuliyo amar "x" ah mana haysto ' ma aqaan sida loo sameeyo, ma i caawin kartaa?

    echo "Gali tigidh"
    tigidh akhris -p

    haddii $ tikidh = "fikrad la'aan (qaabka ABC-123456"); markaa cp file.txt $ tikidh; kale ku celceliya "Qaab qaldan, iskuday markale"; aqri -p; fi.

    Xaqiiqdii waa wax laga naxo oo way ku qoslaan haha, laakiin sidaan idhi waxaan ku bilaabayaa tan.

    Haddii aan si xun u sharraxo fadlan ii sheeg oo waxaan isku dayaa inaan wax ka sii fiican sameeyo.

    Isku duub qof walba.

  15.   Xumberto Y dijo

    Sharaxaad wanaagsan, salaan

  16.   kacsan dijo

    Waxaan shaki yar ka qabaa haddii, kale iyo kuwa kaleba.
    Waxaan rabaa qoraal si aan u hubiyo in fayl uu jiro (mid ka mid ah log) iyo haddii kale, si aan u abuuro oo hadhow u qoro. Laakiin haddii ay jirto, waxaan rabaa in aad qoraal uun u qorto.

    Waxa aan haysto waa:

    taariikhda = `taariikhda -R`
    #Waxaan tijaabinayay taariikh doorsooma, taasoo aan la cusboonaysiin inta u dhaxaysa bilawga a
    #process and end, mararka qaarkood saacad ayaa dhaafi karta oo wakhtiga saxda ah ma soo baxo.

    haddii [-f /home/user/logs/test.log];
    ka dibna
    taabo /home/usuario/logs/test.log
    kale
    Echo "$ taariikhda: la cusbooneysiiyey" >> /home/user/logs/test.log
    Echo «———————————————-» >> /home/user/logs/test.log
    fi

    Aragti ahaan waa inay fiicnaataa, laakiin xaqiiqadu waxay tahay inaan la cusboonaysiin haddii faylka la tixraacay uu hore u jiray

    1.    kacsan dijo

      waan ka xumahay, waxaan arkay inaan la dirin oo ay labanlaabtay