Bash: Cumhachan (ma tha, an uairsin-eile)

Halo 😀

An turas seo seallaidh mi dhut mar a nì thu sgriobt le suidheachadh a-steach Bash, a rinn eadar-theangachadh:

Ma thèid X rud a tha thu ag iarraidh a choileanadh, thèid gnìomh Y a dhèanamh, mura h-eil e air a choileanadh tha gnìomh eile air a dhèanamh.

Mìneachadh sìmplidh no 😀

A-nis, tha mi air smaoineachadh airson beagan mhionaidean beagan eisimpleir a chleachdadh anns an oideachadh seo, thachair an dileab / duilgheadas / suidheachadh a leanas rium:

Tha sinn air lìonra a ’chompanaidh againn, agus tha sinn airson faighinn a-mach a bheil coimpiutair X ceangailte ris an lìonra. Airson seo bidh sinn a ’dèanamh a sgriobt dè a nì e ping a dh ’ionnsaigh a’ choimpiutair sin, agus ma tha e air lìonra (is e sin, ma thilleas e an ping) innsidh sinn dhut gu bheil, tha e air an lìonra, air dhòigh eile (is e sin, chan eil e air an lìonra) innsidh e dhuinn NACH EIL air an lìonra.

Aon uair ‘s gu bheil seo dèante, a-nis mìnichidh mi mar a nì thu rothaireachd le cumhaichean 🙂

Seo an còd:

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

Na gabh dragh, mìnichidh mi seo dhut gu mionaideach 😉

ping an àithne a chleachdas sinn, agus innsidh e dhuinn a bheil am PC sin air an lìonra. Gus innse dè am PC a tha sinn airson faighinn a-mach a bheil e air an lìonra no nach eil, feumaidh sinn atharrachadh ADRESS IP le bhith gu follaiseach seòladh IP a ’PC a tha sinn airson sgrùdadh.

Mar a chì thu, chuir mi «-c 1«, A tha riatanach dhuinn. Nuair a bhios sinn a ’ping coimpiutair, cha stad an gnìomh seo (am ping) gus am brùth sinn sinn fhìn [Ctrl] + [C], mar sin a ’cur«-c 1»Bidh sinn ag innse dha gun a bhith a’ dèanamh ach aon dearbhadh (dìreach aon oidhirp ping) agus gun dad eile, bheir seo air stad sa bhad, is e sin ... nì e sgrùdadh a bheil an coimpiutair air an lìonra dìreach aon uair.

Ma tha teagamh agad mu dheidhinn seo, gun phian ... tha iad ag ràdh sin agus bidh mi toilichte a mhìneachadh a-rithist

A-nis thig an cearcall, oir chan eil na tha mi air a mhìneachadh ach dad nas motha na àithne / gnìomh àbhaisteach 😀

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

Gus am bi thu a ’tuigsinn seo, mìnichidh mi mion-fhiosrachadh fìor chudromach de Bash 🙂

Dh ’fhaodadh an fheadhainn as eòlaiche air a’ chuspair mo chomharrachadh mar rud ceàrr no rudeigin mar sin, ach hey, bidh mi a ’sgrìobhadh seo airson na h-eòlaichean ùra no nas lugha, fhad‘ s a thuigeas iad e an uairsin fìor mhath 😉

Tha e a ’tachairt sin mar ann an Bash tha e rudeigin coltach 0 y 1, is e sin, an dara cuid tha thu beò no tha thu marbh, nuair a thèid àithne no gnìomh a chuir an gnìomh: An dàrna cuid a chur gu bàs gu math Chan eil trioblaid ann (1), no bha cuid ann duilgheadas no mearachd (0).

Bidh sinn a ’dèanamh gnìomh no àithne X, agus is dòcha gun deach na rinn sinn a choileanadh gu math no gu dona, is dòcha gu robh mearachd air no nach robh, agus seo far a bheil am mion-fhiosrachadh 😉

Ma chuireas sinn na nì sinn (sa chùis seo: ping -c 1 IP-ADDRESS) cha tug e mearachd agus bha e soirbheachail, mar sin tillidh e an luach: 1 . Rud eile, agus mura robh an gnìomh (is e sin, am ping) soirbheachail, tillidh e luach 0.

 Agus mu dheireadh, is e seo a tha an còd gu h-àrd a ’ciallachadh:

Ma chaidh luach 0 a thilleadh an uairsin

Seall an teacsa: «No air lìonra»

Rud eile (agus till NOT 0, ach 1)

Seall an teacsa: «Ma tha e ann an lìonra«

Bidh seo a tha mi dìreach air a mhìneachadh dhut, a ’toirt seirbheis dhuinn san àm ri teachd airson mòran rudan, oir tha e feumail dha-rìribh a bhith comasach a ràdh ma thug gnìomh X mearachd, dèan Y gnìomh, agus air eagal nach tug X gnìomh mearachd, an uairsin dèan Z gnìomh.

Tha fios agam gum faodadh cuid a dhol an sàs beagan, agus mar sin tha mi air feuchainn ri a mhìneachadh ann an grunn dhòighean eadar-dhealaichte, a ’feuchainn ri toirt air a h-uile duine a thuigsinn aon dòigh no ann an dòigh eile. Air eagal gu bheil teagamh sam bith aig duine sam bith, leig fios dhomh.

A-nis, dèanamaid an sgriobt againn 😀

Feumaidh sinn na ceumannan anns an oideachadh seo a leantainn: Bash: Mar a nì thu sgriobt so-ghnìomhaichte

An uairsin dèanamaid lethbhreac den chòd a leanas don fhaidhle sin (script.sh), agus aig an deireadh canaidh sinn «fàgail»(Sin na luachan):

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

Bu chòir dha a bhith a ’coimhead mar seo (cuimhnich gum feum iad a bhith air an IP-ADDRESS atharrachadh chun IP a tha iad ag iarraidh):

An seo chì thu an sgriobt ruith:

% CODE1%

 

Mar a chì thu, aig a ’cheann thall tha e ag innse dhuinn«Tha, tha e ann an lìonra»🙂

Is e an rud chudromach an seo gu bheil thu dha-rìribh a ’tuigsinn seo mu chumhachan, mar sin fàgaidh mi còd eile dhut airson a mhìneachadh a-rithist, ach bho shealladh eile.

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

Tha seo a ’ciallachadh sìmplidh, fàgaidh mi an loidhne mìneachadh a rèir loidhne:

1mh loidhne: Na sgrìobhas sinn, is e sin luach an caochladair «teacsadh»(Sin na luachan).

2na loidhne: Thoir sùil air a bheil susbaint an caochladair (na sgrìobh sinn dìreach) 3.

3mh loidhne: Ann an cùis a bhith 3, seallaidh e dhuinn an teacsa «Correcto»(Sin na luachan).

4mh loidhne: Rud eile (is e sin, air eagal nach eil sinn air 3 a sgrìobhadh).

5mh loidhne: Seallaidh e dhuinn an teacsa «Mearachdach»(Sin na luachan).

6mh loidhne: Deireadh a ’chumha.

Mar a tha iad air a bhith comasach air tuigsinn, ma chuireas sinn echo agus an uairsin eadar luachan dùbailte («) teacsa, bheir seo air an teacsa sin a bhith air a thaisbeanadh sa cheann-uidhe. Is e sin, ma chuireas sinn:

echo "esto es una prueba"

Seallaidh e dhuinn an teacsa sa cheann-uidhe: tha seo na dheuchainn

Ach a ’dol air ais chun dàrna eisimpleir seo, seallaidh mi dhut cho feumail agus a tha an dàrna sgriobt seo le rudeigin FÌOR sìmplidh 😀… an àbhaist«.dè an ìre a th ’ann an 1 + 2?«

Bidh mi a ’fàgail còd na sgriobt iomlan dhut:

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

Seo mar a tha an sgriobt ag obair:

% CODE2%

 

Agus uill ... chan eil dad a bharrachd ri chur ris.

Is e seo rudeigin bunasach, sìmplidh tha, ach fhathast dh ’fheuch mi ri a mhìneachadh cho math’ s a ghabhas, oir chan eil anam prògramadair aig a h-uile duine, agus iomadh uair feumaidh sinn sgriobtaichean mar seo (no a leithid) a dhèanamh, co-dhiù tha mi an dòchas gum bi an artaigil seo feumail dhut cuideigin 🙂

Ma tha teagamh no ceist, gearan no moladh sam bith agad, fàg e an seo e, bheir mi freagairt dhut agus mar sin, ionnsaichidh sinn uile beagan a bharrachd 😀

Tapadh leibh!


Tha susbaint an artaigil a ’cumail ri na prionnsapalan againn de moraltachd deasachaidh. Gus aithris a dhèanamh air mearachd cliog an seo.

23 bheachd, fàg do chuid fhèin

Fàg do bheachd

Seòladh-d cha tèid fhoillseachadh. Feum air achaidhean air an comharrachadh le *

*

*

  1. Uallach airson an dàta: Miguel Ángel Gatón
  2. Adhbhar an dàta: Smachd air SPAM, riaghladh bheachdan.
  3. Dìleab: Do chead
  4. Conaltradh an dàta: Cha tèid an dàta a thoirt do threas phàrtaidhean ach a-mhàin fo dhleastanas laghail.
  5. Stòradh dàta: Stòr-dàta air a chumail le Occentus Networks (EU)
  6. Còraichean: Aig àm sam bith faodaidh tu am fiosrachadh agad a chuingealachadh, fhaighinn air ais agus a dhubhadh às.

  1.   Jhals thuirt

    Tha thu nad pro !!! * no *

    1.    KZKG ^ Gaara thuirt

      Nah airson dad 😀
      Ma rinn e seirbheis dhut agus tha e inntinneach, tha mi riaraichte 😉

      Beannachdan caraid

  2.   ceart thuirt

    @ KZKG ^ Gaara,
    a ’bruidhinn air prògraman bash tha ceist agam:
    Dè an diofar eadar a bhith ag ainmeachadh caochladair mar an VAR = hello agus ag aithris mar an VAR = $ {VAR: -hello}?

    Tha mi a ’mìneachadh:
    http://pastebin.com/a3cfWXeD

    beannachdan 😉

    1.    KZKG ^ Gaara thuirt

      Halo 😀
      Uill, chan eil mi nam eòlaiche air bash idir ... gu fìrinneach, chan eil beachd agam air LOL !!
      Mar a dhearbhas mi na caochladairean tha e mar seo:
      : ${OPTFOLDER:="/opt/"}

      Ach leis gun robh mi an-còmhnaidh ga dhèanamh mar seo, chan eil fhios agam dè an diofar a dh ’fhaodadh a bhith onarach 🙁

  3.   ceart thuirt

    @ KZKG ^ Gaara
    Uill chuir mi a ’cheist oir is e an fhìrinn nach robh fios agam air gin dhiubh, mar as trice bidh mi a’ sgrìobhadh SlackBuilds agus is e an fhìrinn gu bheil caochladairean a chaidh ainmeachadh mar ann an VAR1 lìonmhor anns na sgriobtaichean sin. Chuidich sgrùdadh google sgiobalta mi a ’cheist seo a shoilleireachadh, bidh mi ga roinneadh leis a h-uile duine gus an urrainn dhuinn uile ionnsachadh:

    Sgriobt:
    http://pastebin.com/faAQb35w

    Mìneachadh:
    A ’foillseachadh caochladairean den fhoirm VAR = $ {VAR: -default_value} tha sin a’ ciallachadh gun toir an VAR caochlaideach an luach default_value ma tha agus mura h-eil an luach null no nach eil ann.

    Eisimpleir làimhseachail:
    nuair a chuireas e an sgriobt an gnìomh, bidh e ag iarraidh luach a chuir a-steach airson a stòradh san VAR caochlaideach, ma thèid rudeigin a-steach seallaidh e na chaidh a chur a-steach. Mura cuir sinn a-steach dad agus brùth a-steach tha sinn ag aithris gu bheil an VAR caochlaideach mar null, mar sin tha e a ’sealltainn default_value.

    Taing.

    1.    KZKG ^ Gaara thuirt

      HAHA Cha robh fios agam air sin 😀
      Glè mhath, mòran taing dha caraid ... is e sin a bha mi a ’ciallachadh ro dheireadh an artaigil, chan eil mi an dùil rudeigin a theagasg agus sin e, tha fios agam gum bi mi an-còmhnaidh ag ionnsachadh rudeigin ùr an seo 😀

      Beannachdan agus taing a-rithist.

      1.    ceart thuirt

        tha thu ceart, bidh aon ag ionnsachadh grunn rudan an seo.

        beannachdan agus saor-làithean sona !! 😀

  4.   Lucas Matias thuirt

    Glè mhath agus air a mhìneachadh gu fìor mhath +1, an ùine a bheir e dhut ...
    ach is fhiach mi an oidhirp 😉

    1.    KZKG ^ Gaara thuirt

      Sgrìobh mi 80% ann an dìreach 1 latha, thug e cho fada dhomh a phostadh dìreach air sgàth nach leigeadh an eadar-lìn agam.
      Tapadh leibh airson do bheachd 😉

  5.   Hugo thuirt

    Is e dòigh eile air a dhèanamh a bhith a ’cleachdadh DNS, oir uaireannan tha lìonra air protocol ICMP a bhacadh:

    (òstair -ta IP-ADDRESS> / dev / null 2> & 1) && echo "Ceangailte ris an lìonra"

    Mothaichidh tu cuideachd san eisimpleir seo gu bheil an sgrùdadh luach toraidh ri thuigsinn 😉

    1.    KZKG ^ Gaara thuirt

      Tha thu mar charaid an-còmhnaidh, le molaidhean nach eil mi eòlach gu tur air HAHAHA.
      Tapadh leibh, tha sinn a ’cur luach air a’ bheachd agus hehe… rud ùr eile a bhios mi ag ionnsachadh 😀

  6.   Datux thuirt

    Gracias

    ????

  7.   Leper_Ivan thuirt

    Eadhon ged a tha grunn làithean air a dhol seachad bho chaidh an cuspair seo fhoillseachadh, tha e air mo chuideachadh gu mòr, a-nis gun do rinn mi sgriobt bash .. Taing Gaara ..

  8.   Edgar navarro thuirt

    Taing airson a ’chuideachaidh a rinn thu rudan soilleir dhomh.

    Dìreach ceist, ciamar a nì mi sin nuair a stadas aon choimpiutair a ’putadh gu fèin-ghluasadach bidh am fear eile ag atharrachadh IP. Tha seo agam.

    gus an IP atharrachadh
    #! / bin / bash
    ping -c 10 192.168.1.50 # Mura h-eil e a ’ping gu fèin-ghluasadach
    ifconfig eth0 192.168.1.50 netmask 255.255.255.0 air a chraoladh 192.168.1.0
    ifconfig eth0 sìos
    ifconfig eth0 suas

  9.   Abraham thuirt

    oir nuair a tha thu a ’dèanamh coimeas eadar ma chleachdas tu an comharra ceist? dè an diofar a th ’ann eadar a bhith a’ cur an? litir sam bith eile

    1.    KZKG ^ Gaara thuirt

      $? a ’ciallachadh‘ an toradh roimhe ’, is e sin, air eagal toradh an àithne roimhe ... 🙂

      1.    Andrés thuirt

        Tha dòigh eile ann airson an aon toradh a choileanadh, a ’dol seachad air an àithne ping gu dìreach mar argamaid ma tha:

        ma ping -c 1 IP-ADDRESS; an uairsin
        mac-talla "Tha, tha e air an lìon"
        eile
        mac-talla "Chan ann air an lìonra"
        fi

        Is e na thachras ma bhios e a ’luachadh luach tilleadh na h-àithne a thèid thu seachad mar argamaid, ma thilleas e 0 tha e fìor, tha dad sam bith eile meallta. Tha na cromagan ceàrnagach co-ionann ris an àithne deuchainn. Ach faodaidh tu òrdugh sam bith a thoirt seachad mar argamaid (fhad ‘s a thilleas an àithne beagan luach).

  10.   Tapadh leibh! thuirt

    Halo, ciamar a chuireas mi an gnìomh script.sh le cleachdaiche X san sgriobt Bidh mi a ’cruthachadh cleachdaiche Y, agus tha an neach-cleachdaidh sin Y a’ leantainn air adhart a ’cur an gnìomh an script.sh

    An urrainnear seo a dhèanamh ??

  11.   Kuktos thuirt

    Gu math inntinneach, taing!

  12.   Francis thuirt

    Taing airson an tabhartas, tha mi air a bhith uair a thìde airson a thuigsinn xD, ach thuig mi e !!!!.

  13.   Eloy thuirt

    Tha an sgriobt gu math. Gu àireamhachd, dh ’fhaodadh e a bhith air a dhèanamh cuideachd mar ($? == 0) ma tha e co-ionann ri neoni chan eil e air an lìonra, air dhòigh eile tha e air an lìonra. Agus ma tha sinn fhathast airson a dhèanamh beagan nas eadar-ghnìomhach faodaidh sinn a ràdh:
    mac-talla -n Cuir a-steach an IP:
    leugh ip
    ping -c 1 $ ip

  14.   Dario thuirt

    Halo, tha mi gu math ùr dha seo, tha mi a ’feuchainn ri àireamh tiogaid (alphanumeric) a dhèanamh tro leughadh agus tha mi airson ma tha an cruth ceart (ABC-123456) a’ cur an gnìomh àithne “x” ma thèid a chuir a-steach agus chan eil fios agam ciamar a nì mi e, am b ’urrainn dhut mo chuideachadh?

    mac-talla "Cuir a-steach tiogaid"
    tiogaid leugh -p

    ma tha $ ticket = "gun bheachd (cruth ABC-123456"); an uairsin tiogaid cp file.txt $; eile mac-talla "cruth ceàrr, feuch ris a-rithist"; leugh -p; fi.

    Gu cinnteach tha e uamhasach agus bidh iad a ’gàireachdainn haha, ach mar a thuirt mi tha mi dìreach a’ tòiseachadh le seo.

    Ma mhìnicheas mi gu dona innis dhomh agus feuchaidh mi ri dhèanamh nas fheàrr.

    Hug a h-uile duine.

  15.   Humberto Y. thuirt

    Mìneachadh sàr-mhath, beannachdan