Halo 😀
Kali ieu kuring bakal nunjukkeun anjeun kumaha ngadamel skrip kalayan kaayaan di Bash, anu ditarjamahkeun nyaéta:
Upami hal X anu anjeun pikahoyong parantos dilakonan, tindakan Y parantos dilakukeun, upami éta henteu kahontal maka tindakan anu sanés dilakukeun.
Penjelasan saderhana henteu 😀
Ayeuna, kuring parantos mikir sababaraha menit sababaraha conto pikeun digunakeun dina tutorial ieu, dilema / masalah / kaayaan kieu kajantenan kuring:
Kami aya di jaringan perusahaan kami, sareng kami hoyong terang upami komputer X nyambung kana jaringan. Pikeun ieu kami ngadamel naskah naon anu bakal anjeunna lakukeun ping nuju komputer éta, sareng upami éta aya dina jaringan (nyaéta, upami éta mulih ping) bakal nyaritakeun yén YA, éta aya dina jaringan, upami sanés (nyaéta, éta henteu aya dina jaringan) éta bakal nyaritakeun yén éta HENTEU dina jaringan.
Sakali ieu réngsé, ayeuna kuring bakal ngajelaskeun kumaha siklusna sareng kaayaan 🙂
Ieu kode na:
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Tong hariwang, kuring bakal ngajelaskeun ieu ka anjeun sacara rinci 😉
ping nyaéta paréntah anu bakal kami anggo, sareng éta bakal nyaritakeun upami PC éta aya dina jaringan. Pikeun nyaritakeun PC mana anu urang hoyong parios naha éta aya dina jaringan, urang kedah robih IP ADRESS ku jelas alamat IP tina PC anu urang hoyong parios.
Sakumaha anjeun tiasa tingali, kuring nempatkeun «-c 1«, Mana anu diperyogikeun pikeun kami. Nalika urang ping komputer, tindakan ieu henteu lirén (ping) dugi ka mencétan diri [Ctrl] + [C], jadi nempatkeun «-c 1»Kami ngawartosanna ngan ukur ngalakukeun hiji verifikasi (ngan ukur hiji usaha ping) sareng sanés anu sanés, ieu bakal ngajadikeun éta eureun langsung, nyaéta ... éta bakal mariksa naha komputer ngan ukur aya dina jaringan.
Upami anjeun ragu ngeunaan ieu, henteu aya rasa nyeri ... aranjeunna nyarios kitu sareng kuring bakal senang ngajelaskeun deui ka anjeun 😉
Ayeuna datang siklusna, sabab anu ku kuring nembe dijelaskeun lain ngan ukur paréntah / tindakan normal 😀
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Sangkan anjeun ngartos ieu, kuring bakal ngajelaskeun detil anu penting pisan tina Bash 🙂
Anu paling berpengetahuan luas ngeunaan mata pelajaran éta tiasa nyatakeun kuring lepat atanapi anu sapertos kitu, tapi hé, kuring nyerat ieu kanggo para novice atanapi kirang ahli, salami aranjeunna ngartos teras hébat 😉
Éta kajantenan sapertos dina Bash éta sapertos kitu 0 y 1, nyaéta, naha anjeun hirup atanapi anjeun maot, nalika paréntah atanapi tindakan dilaksanakeun: Boh dieksekusi ogé Henteu masalah (1), atanapi aya sababaraha masalah atanapi kasalahan (0).
Kami ngalaksanakeun tindakan atanapi paréntah X, sareng naon anu urang lakukeun tiasa dilaksanakeun sacara hadé atanapi parah, éta panginten aya kasalahan atanapi henteu, sareng ieu dimana detailna 😉
Upami naon anu urang kirimkeun pikeun dilakukeun (dina hal ieu: ping -c 1 IP-ALAMAT) henteu masihan kasalahan sareng éta suksés, janten éta bakal balikkeun nilaina: 1 . Upami teu kitu, sareng upami tindakan (nyaéta ping) henteu suksés, éta bakal balikkeun nilaina 0.
Akhirna, naon anu dimaksud kode di luhur nyaéta:
Upami nilai 0 dipulangkeun maka
Tembongkeun téksna: «Henteu dina jaringan»
Upami sanésna (sareng balik deui NOT 0, tapi 1)
Tembongkeun téksna: «Upami éta aya dina jaringan«
Ieu anu ku kuring nembe dijelaskeun ka anjeun, bakalan ngalayanan ka kami pikeun sababaraha hal, sabab éta leres-leres manpaat pikeun nyatakeun yén upami tindakan X masihan kasalahan, ngalakukeun tindakan Y, sareng upami tindakan X henteu masihan kasalahan, hayu Z aksi.
Kuring terang yén sababaraha panginten rada lieur, janten kuring parantos nyobian ngajelaskeun ku sababaraha cara, nyobian sadayana ngartos kana hiji cara atanapi cara anu sanés. Bisi saha anu tinggaleun ragu, hayu atuh terang.
Ayeuna, hayu urang ngadamel skrip urang 😀
Urang kedah nuturkeun léngkah dina tutorial ieu: Bash: Kumaha carana ngadamel skrip anu tiasa laksana
Maka hayu urang salin kode ieu kana file éta (naskah.sh), sareng dina tungtungna hayu urang nyarios «Kaluar»(Tanpa tanda petik):
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Éta kedahna sapertos kieu (émut yén anjeun kedah ngarobih IP-ADDRESS kana IP anu anjeun pikahoyong):
Di dieu anjeun tiasa ningali skrip anu dijalankeun:
% KODE1%
Sakumaha anjeun tiasa tingali, dina tungtungna anjeunna nyarios ka kami «Leres éta aya dina jaringan»🙂
Anu penting di dieu nyaéta aranjeunna leres-leres ngartos ieu kaayaan, janten kuring ngantunkeun kode anu sanés pikeun ngajelaskeun deui, tapi tina sudut pandang anu sanés.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
Naon ieu hartosna saderhana, kuring ngantepkeun garis penjelasan ku garis:
Garis ka-1: Naon anu urang tulis, éta bakal janten nilai variabel «texting»(Tanpa tanda petik).
Baris ka-2: Pariksa naha eusi variabelna (naon anu urang nembé nyerat) 3.
Garis ka-3: Bisi aya 3, éta bakal nunjukkeun ka urang téks «Correcto»(Tanpa tanda petik).
Baris ka-4: Upami teu kitu (nyaéta, upami urang henteu nyerat 3).
Baris ka-5: Éta bakal nunjukkeun téks na «Lepat»(Tanpa tanda petik).
Baris ka-6: Tungtung kaayaan.
Kumaha aranjeunna tiasa sadar, upami urang nempatkeun gema terus antara tanda petik ganda («) téks, ieu bakal nyababkeun téks na ditampilkeun dina terminal. Nyaéta, upami urang nempatkeun:
echo "esto es una prueba"
Éta bakal nunjukkeun téks dina terminal: ieu tés
Tapi balik kana conto anu kadua ieu, kuring bakal nunjukkeun manpaatna (sareng pelaksanaan) naskah kadua ieu ku anu SANGAT saderhana 😀 ... anu khas «sabaraha 1 + 2?«
Kuring ngantunkeun kode skrip lengkep:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit
Kieu kumaha naskah na dianggo:
% KODE2%
Sareng ... henteu aya anu nambihan deui.
Ieu mangrupikeun hal anu dasar, saderhana enya, tapi tetep kuring parantos nyobian ngajelaskeun ogé mungkin, sabab henteu sadaya jelema ngagaduhan jiwa programmer, sareng sababaraha kali urang kedah ngadamel skrip sapertos ieu (atanapi sami), dina naon waé kuring mugia tulisan ieu bakal manpaat pikeun anjeun batur someone
Sagala mamang atanapi patarosan, keluhan atanapi saran punten, tinggalkeun di dieu, kuring bakal senang ngajawab anjeun sahingga, urang sadayana diajar sakedik deui 😀
Wasalam
26 koméntar, tinggalkeun anjeun
Anjeun pro !!! * atanapi *
Nah keur sia 😀
Upami éta ngalayanan anjeun sareng éta pikaresepeun, kuring wareg 😉
Salam sobat
@ KZKG ^ Gaara,
nyarioskeun program bash kuring gaduh patarosan:
Naon bédana antara nyatakeun variabel sapertos VAR ieu = halo sareng nyatakeunana sapertos VAR ieu = $ {VAR: -hello}?
Abdi ngajelaskeun:
http://pastebin.com/a3cfWXeD
salam 😉
Halo 😀
Nya, abdi sanés ahli bash pisan ... saleresna, kuring henteu gaduh ideu LOL !!
Nalika kuring nyatakeun variabelna sapertos kieu:
: ${OPTFOLDER:="/opt/"}
Tapi kusabab kuring ngalakukeunana sapertos kieu, kuring henteu terang naon bedana tiasa jujur 🙁
@ KZKG ^ Gaara
Nya kuring naroskeun patarosan sabab kaleresan kuring henteu terang ogé, kuring biasana nyerat SlackBuilds sareng kaleresan aya variabel anu dinyatakeun sapertos dina VAR1 anu seueur dina skrip ieu. Pilarian google anu gancang ngabantosan kuring pikeun netelakeun patarosan ieu, kuring bagikeun ka sadayana supaya urang sadayana tiasa diajar:
Naskah:
http://pastebin.com/faAQb35w
Penjelasan:
Ngadeklarasikeun variabel tina bentuk VAR = $ {VAR: -default_value} hartosna variabel VAR bakal nyandak nilai default_value upami sareng ngan ukur nilaina batal atanapi teu aya.
Conto praktis:
Nalika ngajalankeun skrip, dipenta pikeun nuliskeun nilai pikeun disimpen dina variabel VAR, upami aya anu diasupan, éta bakal nunjukkeun naon anu diasupan. Upami urang henteu ngalebetkeun nanaon sareng pencét enter kami nyatakeun variabel VAR salaku batal, janten nunjukkeun nilai_default.
Salam.
HAHA abdi henteu terang éta 😀
Ok, hatur nuhun pisan sobat ... éta anu kuring maksad ku akhir tulisan, kuring henteu maksad ngajarkeun hiji hal sareng éta, kuring terang yén kuring bakal salawasna diajar anu anyar di dieu 😀
Salam sareng hatur nuhun sakali deui.
anjeun leres, hiji diajar sababaraha hal di dieu.
salam sareng liburan senang !! 😀
Heboh sareng hadé dipedar +1, waktos éta bakal nyandak anjeun ...
tapi sia usaha 😉
Sabenerna kuring nyerat 80% ngan dina 1 dinten, butuh pisan kuring pikeun nerbitkeunana kusabab internét kuring henteu ngantep kuring.
Hatur nuhun kana koméntar anjeun 😉
Cara séjén pikeun ngalakukeunana nyaéta ngagunakeun DNS, sabab kadang jaringan ngagaduhan protokol ICMP diblokir:
(host -ta IP-ADDRESS> / dev / null 2> & 1) && gema "Disambungkeun kana jaringan"
Anjeun ogé bakal perhatoskeun yén dina conto ieu cek nilai balik implisit 😉
Anjeun sakumaha biasana sobat, sareng tips anu kuring henteu terang lengkep HAHAHA.
Hatur nuhun, koméntarna ngaapresiasi sareng hehe ... hal énggal sanés anu kuring pelajari 😀
hatur nuhun
🙂
Sanaos sababaraha dinten parantos kalangkung tina nyebarkeun topik ieu, éta parantos seueur ngalayanan kuring, ayeuna kuring ngadamel naskah dina bash .. Nuhun Gaara ..
Dok. Hatur nuhun kana bantosan anjeun parantos jelaskeun pikeun kuring.
Ngan ukur pamundut, kumaha kuring supados nalika hiji komputer lirén ping otomatis sacara otomatis ngarobah IP anu sanés. Abdi gaduh ieu.
pikeun ngarobih IP
#! / bin / bash
ping -c 10 192.168.1.50 # Upami henteu otomatis sacara ping
ifconfig eth0 192.168.1.50 netmask 255.255.255.0 siaran 192.168.1.0
ifconfig eth0 handap
ifconfig eth0 ka luhur
sabab nalika ngabandingkeun sareng upami anjeun nganggo tanda tanya? naon bedana antara nempatkeun? surat naon waé
$? hartosna 'kaluaran atanapi kaluaran saacanna', nyaéta, upami hasil tina paréntah sateuacanna ... 🙂
Aya cara séjén pikeun ngahontal hasil anu sami, ngalirkeun paréntah ping langsung salaku argumen upami:
upami ping -c 1 IP-ALAMAT; satuluyna
gema "Leres éta dina jaring"
lamun henteu
gema "Henteu dina jaringan"
fi
Naon anu lumangsung nyaéta lamun ngaevaluasi nilai balik tina paréntah anu anjeun pasangkan salaku argumen, upami éta ngasilkeun 0 éta leres, anu sanésna palsu. Kurung kuadrat sami sareng paréntah tés. Tapi anjeun tiasa ngalebetkeun paréntah naon waé salaku argumen (salami paréntah mulihkeun sababaraha nilai).
Halo, kumaha kuring ngaéksekusi skrip. Sh sareng pangguna X dina skrip kuring nyiptakeun pangguna Y, sareng pangguna Y éta terus ngaéksekusi skrip. Sh
Naha ieu tiasa dilakukeun ??
Pisan pikaresepeun, hatur nuhun!
Hatur nuhun kana sumbangan, kuring parantos sajam pikeun ngartos éta xD, tapi kuring ngartos !!!!.
Naskahna henteu kunanaon. Aritmatika, éta ogé tiasa dilakukeun salaku ($? == 0) upami éta sami sareng nol éta henteu aya dina jaringan, upami éta dina jaringan. Sareng upami urang masih hoyong ngajantenkeun langkung sakedik interaktif urang tiasa nyarios:
gema -n Asupkeun IP:
maca ip
ping -c 1 $ ip
Halo, kuring pisan énggal ngeunaan ieu, kuring nyobian ngadamel nomer tikét (alfanumérik) ngalangkungan maca sareng kuring hoyong éta anu dilebetkeun ngagaduhan format anu leres (ABC-123456) ngajalankeun paréntah "x" sareng kuring henteu ' t terang kumaha ngadamelna, anjeun tiasa ngabantosan kuring?
gema "Lebetkeun tikét"
baca -p tikét
upami $ tikét = "henteu aya ideu (pormat ABC-123456"); teras tikét file file.txt $; lain echo "format salah, cobian deui"; maca -p; fi
Pasti éta pikareueuseun sareng aranjeunna seuri haha, tapi sapertos anu kuring nyarios kuring ngan dimimitian ku ieu.
Upami kuring ngajelaskeun parah punten wartoskeun ka kuring sareng kuring nyobian ngalakukeun anu langkung saé.
Peluk dulur.
Penjelasan anu saé, salam
Kuring boga mamang saeutik kalawan lamun, sejenna jeung lianna.
Abdi hoyong skrip pikeun pariksa yén file aya (salah sahiji log) sareng upami henteu, pikeun nyiptakeunana teras nyerat engké. Tapi upami aya, kuring hoyong anjeun nyerat waé.
Anu kuring gaduh nyaéta:
titimangsa = `tanggal -R`
#I ieu nguji tanggal variabel, nu teu diropéa antara mimiti a
#prosés sareng réngsé, sakapeung sajam tiasa ngaliwat sareng waktos anu leres henteu kaluar.
lamun [-f /home/user/logs/test.log];
saterusna
touch /home/usuario/logs/test.log
lamun henteu
gema "$ titimangsa: diropéa" >> /home/user/logs/test.log
gema «———————————————-» >> /home/user/logs/test.log
fi
Dina tiori kudu rupa, tapi kanyataanana teu diropéa lamun file referenced geus aya
punten, Kuring nempo yén éta teu dikirim sarta geus dua kali