Dia duit 😀
An uair seo taispeánfaidh mé duit conas script a dhéanamh le riocht i Eabhrac, a aistríodh:
Má dhéantar X rud a theastaíonn uait, déantar gníomh Y, mura ndéantar é ansin déantar gníomh eile.
Míniú simplí uimh 😀
Anois, smaoinigh mé ar feadh cúpla nóiméad faoi shampla éigin a úsáid sa rang teagaisc seo, tharla an aincheist / fadhb / staid seo a leanas dom:
Táimid ar líonra ár gcuideachta, agus ba mhaith linn a fháil amach an bhfuil ríomhaire X ceangailte leis an líonra. Chuige seo déanaimid script cad a dhéanfaidh sé ping i dtreo an ríomhaire sin, agus má tá sé ar líonra (is é sin, má fhilleann sé an ping) inseoidh sé dúinn TÁ, tá sé ar an líonra, murach sin (is é sin, níl sé ar an líonra) inseoidh sé dúinn NACH bhfuil sé ar an líonra.
Nuair a bheidh sé sin déanta, míneoidh mé anois conas rothaíocht le coinníollacha 🙂
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
Ná bíodh imní ort, míneoidh mé é seo duit go mion 😉
ping an t-ordú a úsáidfimid, agus inseoidh sé dúinn an bhfuil an ríomhaire sin ar an líonra. Chun a insint duit cén ríomhaire ba mhaith linn a sheiceáil an bhfuil sé ar an líonra nó nach bhfuil, ní mór dúinn athrú ADRESS IP trí sheoladh IP an ríomhaire ba mhaith linn a sheiceáil ar ndóigh.
Mar a fheiceann tú, chuir mé «-c 1«, Rud atá riachtanach dúinn. Nuair a bhíonn ríomhaire á ping againn, ní stopann an gníomh seo (an ping) go dtí go mbrúimid féin [Ctrl] + [C], mar sin ag cur «-c 1»Deirimid leis gan ach fíorú amháin a dhéanamh (iarracht ping amháin) agus gan aon cheann eile, cuirfidh sé stad air láithreach, is é sin ... seiceálfaidh sé an bhfuil an ríomhaire ar an líonra ach uair amháin.
Má tá amhras ort faoi seo, gan aon phian ... deir siad amhlaidh agus beidh mé sásta é a mhíniú duit arís 😉
Anois a thagann an timthriall, mar níl sa rud a mhínigh mé ach rud ar bith níos mó ná gnáth-ordú / gníomh 😀
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Ionas go dtuigeann tú é seo, míneoidh mé mionsonra thar a bheith tábhachtach de Bash 🙂
D’fhéadfadh an duine is eolaí ar an ábhar brandáil a dhéanamh orm mar rud mícheart nó rud mar sin, ach hug, scríobhaim é seo do na saineolaithe nua nó níos lú, chomh fada agus a thuigeann siad é go hiontach 😉
Tarlaíonn sé sin mar atá i Eabhrac tá sé rud éigin cosúil le 0 y 1, is é sin, bíodh tú beo nó má tá tú marbh, nuair a dhéantar ordú nó caingean a fhorghníomhú: Ceachtar a fhorghníomhú go maith Fadhb ar bith (1), A bhí roinnt fadhb nó earráid (0).
Déanaimid gníomh nó ordú X, agus b’fhéidir go ndearnadh an rud a rinneamar go maith nó go dona, b’fhéidir go ndearna sé botún nó nach ndearna, agus seo an áit a bhfuil na sonraí 😉
Más rud é a sheolaimid a dhéanamh (sa chás seo: ping -c 1 IP-SEOLADH) nár thug sé botún agus d’éirigh leis, mar sin tabharfaidh sé an luach ar ais: 1 . Seachas sin, agus mura n-éireodh leis an ngníomh (is é sin, an ping), gheobhaidh sé luach ar ais 0.
Agus ar deireadh, is é atá i gceist leis an gcód thuas:
Má tugadh luach 0 ar ais ansin
Taispeáin an téacs: «Ní ar líonra»
Seachas sin (agus NÍL 0 ar ais, ach 1)
Taispeáin an téacs: «Má tá sé i líonra«
Freastalóidh sé seo a mhínigh mé duit sa todhchaí ar go leor rudaí, mar tá sé an-úsáideach a bheith in ann a rá má thug gníomh X botún, déan gníomh Y, agus i gcás nár thug gníomh X earráid, lig gníomh Z.
Tá a fhios agam go bhféadfadh mearbhall a bheith ar chuid acu, mar sin rinne mé iarracht é a mhíniú ar go leor bealaí éagsúla, ag iarraidh go dtuigfeadh gach duine é ar bhealach amháin nó ar bhealach eile. I gcás go bhfágtar amhras ar éinne, cuir in iúl dom.
Anois, déanaimis ár script 😀
Ní mór dúinn na céimeanna sa rang teagaisc seo a leanúint: Bash: Conas script inrite a dhéanamh
Ansin déanaimis an cód seo a leanas a chóipeáil isteach sa chomhad sin (script.sh), agus ag an deireadh deirimid «scoir»(Sin na luachana):
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Ba cheart go mbeadh an chuma air mar seo (cuimhnigh go gcaithfidh gur athraigh siad an IP-SEOLADH go dtí an IP atá uathu):
Anseo is féidir leat an script reatha a fheiceáil:
% CÓD1%
Mar a fheiceann tú, sa deireadh deir sé linn «Sea tá sé sa líonra»🙂
Is é an rud tábhachtach anseo ná go dtuigeann tú é seo i ndáiríre faoi dhálaí, mar sin fágaim cód eile duit chun é a mhíniú arís, ach ó thaobh eile.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
Rud a chiallaíonn sé seo simplí, fágaim an líne míniúcháin ar líne:
1ú líne: An méid a scríobhaimid, is é sin luach na hathróg «téacs»(Sin na luachana).
2ú líne: Seiceáil an bhfuil ábhar an athróg (an méid a scríobh muid díreach) 3.
3ú líne: I gcás a bheith 3, taispeánfaidh sé dúinn an téacs «Ceart»(Sin na luachana).
4ú líne: Seachas sin (is é sin, ar eagla nach bhfuil 3 scríofa againn).
5ú líne: Taispeánfaidh sé dúinn an téacs «Mícheart»(Sin na luachana).
6ú líne: Deireadh an choinníll.
Mar a d’éirigh leo a bhaint amach, má chuirimid chailleann agus ansin idir luachana dúbailte («) téacs, cuirfidh sé seo faoi deara an téacs sin a thaispeáint sa teirminéal. Is é sin, má chuirimid:
echo "esto es una prueba"
Taispeánfaidh sé dúinn an téacs sa teirminéal: is tástáil é seo
Ach ag dul ar ais go dtí an dara sampla seo, taispeánfaidh mé duit úsáideacht (agus forghníomhú) an dara script seo le rud an-simplí 😀… an «tipiciúil«cé mhéad atá 1 + 2?«
Fágaim cód na scripte iomláine duit:
#!/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 oibríonn an script:
% CÓD2%
Agus bhuel ... níl aon rud eile le cur leis.
Is rud bunúil, simplí é seo, ach fós féin rinne mé iarracht é a mhíniú chomh maith agus is féidir, mar níl anam ríomhchláraitheora ag gach duine, agus is iomaí uair a chaithfimid scripteanna mar seo (nó a leithéid) a dhéanamh, ar aon chuma tá súil agam go mbeidh an t-alt seo úsáideach duit duine éigin 🙂
Aon amhras nó ceist, gearán nó moladh le do thoil, fág anseo é, freagróidh mé go sásta thú agus dá bhrí sin, foghlaimímid go léir beagán níos mó 😀
Maidir is
26 trácht, fág mise
Is pro tú !!! * nó *
Nah do rud ar bith 😀
Má d’fhreastail sé ort agus má tá sé suimiúil, táim sásta 😉
Beannacht cara
@ KZKG ^ Gaara,
ag labhairt dom ar chláir bash tá ceist agam:
Cad é an difríocht idir athróg mar seo VAR a dhearbhú = Dia duit agus é a dhearbhú mar an VAR = $ {VAR: -hello}?
Míneoidh mé:
http://pastebin.com/a3cfWXeD
beannachtaí 😉
Dia duit 😀
Bhuel, ní saineolaí ar bash mé ar chor ar bith ... i ndáiríre, níl aon smaoineamh agam LOL !!
De réir mar a dhearbhaím na hathróga tá sé mar seo:
: ${OPTFOLDER:="/opt/"}
Ach toisc go ndearna mé mar seo i gcónaí é, níl a fhios agam cad é an difríocht a d’fhéadfadh a bheith macánta 🙁
@ KZKG ^ Gaara
Bhuel chuir mé an cheist toisc gurb í an fhírinne nach raibh a fhios agam ach an oiread, is gnách liom SlackBuilds a scríobh agus is í an fhírinne ná go bhfuil athróga a dhearbhaítear mar atá in VAR1 fairsing sna scripteanna seo. Chabhraigh cuardach tapa google liom an cheist seo a shoiléiriú, roinnim í le gach duine ionas go bhféadfaimis go léir foghlaim:
Script:
http://pastebin.com/faAQb35w
Míniú:
Athróga dearbhaithe na foirme VAR = $ {VAR: -default_value} ciallaíonn sé go dtógfaidh an VAR athróg an luach default_value más rud é agus má tá an luach null nó mura bhfuil sé ann.
Sampla praiticiúil:
Iarrtar ort luach a iontráil atá le stóráil san athróg VAR agus an script á fhorghníomhú, taispeánfaidh sé an méid a iontráladh. Mura gcuirimid rud ar bith isteach agus brúigh Iontráil táimid ag dearbhú go bhfuil an athróg VAR mar null, mar sin taispeánann sé default_value.
Beannachtaí.
HAHA Ní raibh a fhios agam sin 😀
Ceart go leor, a chara mór ... sin a bhí i gceist agam faoi dheireadh an ailt, níl sé ar intinn agam rud éigin a mhúineadh agus sin é, tá a fhios agam go bhfoghlaimeoidh mé rud éigin nua anseo i gcónaí 😀
Beannachtaí agus buíochas arís.
tá an ceart agat, foghlaimíonn duine roinnt rudaí anseo.
beannachtaí agus laethanta saoire sona !! 😀
An-mhaith agus mínithe go sármhaith +1, an t-am a thógfaidh sé ort ...
ach is fiú an iarracht 😉
Scríobh mé 80% i ndáiríre in aon lá amháin, thóg sé chomh fada orm é a phostáil toisc nach ligfeadh mo idirlíon dom.
Go raibh maith agat as do thrácht 😉
Bealach eile chun é a dhéanamh ná DNS a úsáid, mar uaireanta cuirtear bac ar phrótacal ICMP ar líonraí:
(óstach -ta IP-ADDRESS> / dev / null 2> & 1) && macalla "Ceangailte leis an líonra"
Tabharfaidh tú faoi deara freisin go bhfuil an seiceáil luach tuairisceáin intuigthe example sa sampla seo
Tú mar chara i gcónaí, le leideanna nach eol dom go hiomlán HAHAHA.
Go raibh maith agat, tá meas ar an trácht agus hehe ... rud nua eile a fhoghlaimím 😀
Go raibh maith agat
🙂
Cé go bhfuil roinnt laethanta caite ó foilsíodh an topaic seo, d’fhreastail sé go mór orm, anois go ndearna mé script i bash .. Go raibh maith agat Gaara ..
Go raibh maith agat as an gcabhair a chuir tú in iúl dom go soiléir.
Ceist amháin, conas a dhéanfaidh mé é sin nuair a stopann ríomhaire amháin ag pinging go huathoibríoch athraíonn an ceann eile IP. Tá seo agam.
chun an IP a athrú
#! / bin / bash
ping -c 10 192.168.1.50 # mura ping sé go huathoibríoch
ifconfig eth0 192.168.1.50 netmask 255.255.255.0 craoladh 192.168.1.0
ifconfig eth0 síos
ifconfig eth0 suas
mar nuair a dhéantar comparáid leis an má úsáideann tú an comhartha ceiste? cén difríocht atá idir an? aon litir eile
$? ciallaíonn 'an t-aschur nó an t-aschur roimhe seo', is é sin, i gcás toradh an ordaithe roimhe seo ... 🙂
Tá bealach eile ann chun an toradh céanna a bhaint amach, an t-ordú ping a rith go díreach mar argóint más rud é:
más ping -c 1 IP-ADDRESS; ansin
macalla "Sea tá sé ar an glan"
eile
macalla "Níl sé ar an líonra"
fi
Is é an rud a tharlaíonn má mheasann tú luach tuairisceáin an ordaithe a ritheann tú mar argóint, má fhilleann sé 0 tá sé fíor, tá aon rud eile bréagach. Is ionann na lúibíní cearnacha agus an t-ordú tástála. Ach is féidir leat aon ordú a rith mar argóint (fad is a fhilleann an t-ordú luach éigin).
Dia duit, conas a fhorghníomhaím script.sh le húsáideoir X sa script Cruthaím úsáideoir Y, agus leanann úsáideoir Y ag forghníomhú an script.sh
An féidir é seo a dhéanamh ??
An-suimiúil, go raibh maith agat!
Go raibh maith agat as an gcion, bhí uair an chloig agam chun é a thuiscint xD, ach thuig mé é !!!!.
Tá an script go breá. Ar uimhríocht, d’fhéadfaí é a dhéanamh freisin mar ($? == 0) má tá sé cothrom le nialas níl sé ar an líonra, ar shlí eile tá sé ar an líonra. Agus más mian linn fós é a dhéanamh rud beag níos idirghníomhaí is féidir linn a rá:
macalla -n Cuir isteach an IP:
léigh ip
ping -c 1 $ ip
Dia duit, táim an-nua leis seo, táim ag iarraidh uimhir ticéad (alfa-uimhriúil) a dhéanamh trí léamh agus ba mhaith liom má tá an fhormáid cheart (ABC-123456) ag an ordú a fhorghníomhaítear agus mura ndéanaim ' t a fhios agam conas é a dhéanamh, an bhféadfá cabhrú liom?
macalla "Iontráil ticéad"
ticéad léite -p
más $ ticket = "gan smaoineamh (formáid ABC-123456"); ansin cp file.txt $ ticéad; macalla eile "formáid mhícheart, bain triail eile as"; léigh -p; fi.
Cinnte tá sé uafásach agus déanann siad gáire haha, ach mar a dúirt mé nílim ach ag tosú leis seo.
Má mhíním go dona inis dom é agus déanaim iarracht níos fearr a dhéanamh.
Hug gach duine.
Míniú den scoth, beannachtaí
Tá beagán amhras orm más rud é, eile agus daoine eile.
Ba mhaith liom script a sheiceáil go bhfuil comhad ann (ceann de na logaí) agus mura bhfuil, é a chruthú agus scríobh chuige níos déanaí. Ach má tá sé ann, níl uaim ach scríobh chuige.
Is é atá agam:
dáta = `dáta -R`
Bhí #I ag tástáil dáta athraitheach, nach ndéantar a nuashonrú idir tús a
#process and ends, uaireanta is féidir le uair an chloig pas a fháil agus ní thagann an t-am ceart amach.
más rud é [-f /home/user/logs/test.log];
ansin
teagmháil /home/usuario/logs/test.log
eile
macalla "$ dáta: Nuashonraithe" >> /home/user/logs/test.log
macalla «——————————————- >> >> /home/user/logs/test.log
fi
Go teoiriciúil ba chóir go mbeadh sé go maith, ach is é fírinne an scéil nach ndéantar é a nuashonrú má tá an comhad tagartha ann cheana
tá brón orm, chonaic mé nár seoladh é agus tá sé faoi dhó