Toinen osa tästä mini-opetusohjelma ohjelmointi Kemut, jossa opimme käyttämään syklit ja muita työkaluja, jotka auttavat meitä parantamaan palvelumme toimintoja skriptejä. |
Jos ehdollinen
If: n tehtävänä on käyttää suodatinta ja suorittaa jokaiselle käytetylle suodatintyypille jokin toiminto tai tehtävä. Sen rakenne on seuraava:
Jos [ehto]; sitten elif-komennot [ehto]; sitten muut komennot; fi -komennot
Esimerkki näkyy For-silmukan vieressä vastaavassa osiossa.
syklit
1. Vaikka: se suorittaa kaikki komennot, jotka on määritetty tekemisen ja tekemisen välillä, kunhan ehto on tosi. Jos haluamme välittää vertailuoperaattorit sille, lausekkeen on oltava suluissa.
kun taas CONDITION / COMMAND tekevät komennot
Esimerkki: luvun kertotaulukko
#! / bin / bash X = 1 kaiku "Syötä numero ja paina ENTER" lue M #Silmukka ohjaa, että X on pienempi tai yhtä suuri kuin 10, kun taas [$ X –le 10] tee #R: ssä tallennamme X MR: llä = $ [X * M] # Tämä kertolasku tulostetaan ruudulle kaiku "$ M * $ X = $ R" # Annetaan suurennetaan X: n arvoa 1 yksiköllä annetaan X = $ X + 1 valmis
2. For: tallentaa luettelon muuttujaan sisältyvistä elementeistä, joita käytetään tiettyjen toimintojen suorittamiseen jokaisella jaksolla.
for VARIABLE in ELEMENTS tee komentoja
Esimerkki: ohjelma, joka kopioi tiedoston kansiosta toiseen korvaamalla vanhan tiedoston.
# / bin / bash #Voimme luoda lähde- ja kohdehakemistot ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Sijoitamme lähdekoodiin $ ORIGIN # Kaikista tiedostoista haluamme vain sen, joka on # kutsu FILE tiedostolle * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f suodattaa meille tavalliset tiedostot, koska hakemistot eivät ole meille mitään hyödyllisiä. –Nt suodattaa # tiedostoa “uudemmiksi” kuin kohdekansiossa olevat #, jos [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; sitten kaiku "Kopioi $ FILE ..." # kopioimme tiedoston cp cp $ FILE $ ARCH-DESTINATION fi valmis #We cd poistua lähdekansiosta cd
Toinen esimerkki: komentosarja, jossa käyttäjän on arvattava tietokoneen tuottama satunnaisluku.
# / bin / bash # Satunnaisluku syntyy 1: stä 10: een, se # tallennetaan RANDOM RANDOM -arvoon = $ [$ RANDOM% 10 + 1], kun taas [1] toistaa kai- n "Syötä numero:" lue NUM # Vertaa, jos käyttäjän valitsema numero on # yhtä suuri kuin RANDOM; muista käyttää arvoa $ muuttujien #arvojen ja niiden nimien arvioimiseksi, jos [“$ NUM –eq“ $ RANDOM ”]; sitten kaiku "Sinulla on oikein!" #break sallii silmukan lopettamisen ja tauon # Jos luku on pienempi kuin RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; sitten kaiku "Se on vähemmän" "Jos ei, se on suurempi kuin RANDOM muut kaiku" IT ON suurempi "tehty
3. Kunnes: rakenteeltaan melko samanlainen kuin While, paitsi että koodi suoritetaan aina kun ehdon arviointi on negatiivinen, eli ohjelma jatkaa suoritusta "kunnes ehto esiintyy"
kunnes CONDITION / COMMAND tee komentoja
Esimerkki: tulosta numerot 10-20 laskevassa järjestyksessä
#! / bin / bash CONT = 20 # Niin kauan kuin laskuri on alle 10 (-lt, "alempi #than"), koodi suoritetaan, kunnes [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT vähennetään yksiköllä, jonka CONT- = 1 on tehty
4. Valitse: tämä viimeinen sykli on erikoistapaus, koska sitä käytetään yleensä valikoiden tekemiseen nopeasti. Se toimii samalla tavalla kuin For-silmukka.
valitse VARIABLE luettelosta tehdyistä komennoista
Esimerkki: anna käyttäjälle mahdollisuus jatkaa tai lopettaa komentosarja.
#! / bin / bash #item on muuttuja, joka vastaa # käyttäjän valitsemaan, Jatka ja Valmis ovat # käytettävissä olevat vaihtoehdot, vaikka muita vaihtoehtoja voidaan lisätä # lisää valitse kohde Jatka Valmis tee # Jos käyttäjä valitsee lopeta ohjelma, sitten lopetamme jakson. jos [$ item = "Valmis"]; sitten tauko fi tehty
Luulen jotain tällaista: tar -cf - Hakemisto | (cd / muu / hakemisto; tar -xvf -)
Sitten se näyttäisi olevan / toinen / hakemisto / Hakemisto
Tällä tavoin pakkasin hakemiston ja sinä purat sen toisesta paikasta….
Hei, hyvä tuto, olen oppinut aiheesta ja kaikki on hyvin, vain en ole pystynyt tekemään ohjelmaa, joka auttaa minua, jotta voisitko auttaa minua.
Minun täytyy tehdä sykli, jossa se saa parametreina luettelon lähdetiedostosta, tämä luettelo tuo vain nimet (ilman laajennusta), jotta sykli suorittaa seuraavan, etsi mainittu nimi, joka on vastaanotettu hakemistosta (joka on jota etsimme), pura ja kopioi tiedosto (koko nimi jo laajennuksella) ja absoluuttinen polku ja luo se toiseen kohdetiedostoon.
Toistaiseksi minulla on seuraava:
kun luet riviä
do
echo -e "$ line"
find / home / myuser / dof "$ line" -exec readlink -f {};
done <testlist.txt Olen toistaiseksi lukenut tiedoston, kaikki sen rivit, mutta en voi panna sitä etsimään kyseistä tiedostoa ja purkamaan tietoja. Kippis
Paljon kiitoksia panoksesta 🙂
Hei ... Toivon, että voit auttaa seuraavassa käytännössä ... Pura tiedosto tgz: stä määritettyyn hakemistoon sen lisäksi, että määrität käyttäjän ja ryhmän kaikille olemassa oleville hakemistoille ja tiedostoille ja hakemistoille käyttöoikeudet
Huomautus: tiedostot ovat valmiita lukemista ja kirjoittamista varten
hakemistojen suorittamislupa
ARCH-DESTINATION on muuttuja, johon haluamme tallentaa kohdetiedoston polun, redundanssia varten. Sitten tähän muuttujaan ilmoitetaan muuttuja DESTINATION, joka yllä sisältää polun Documents-kansioon ja lisätään "muuttuja" FILE, joka sisältää tiedoston nimen. Jos kyseinen tiedosto olisi esimerkiksi list.doc, muuttuja ARCH-DESTINATION olisi yhtä suuri kuin /home/Usuario/Documentos/listado.doc
Se on edellinen artikkeli. Pääset siihen osoitteessa http://usemoslinux.blogspot.com
Halata! Paul.
Hyvää huomenta kaveri vain kiitos, blogisi on erittäin hyvä, mutta en voi saada ensimmäistä osaa ohjelmoinnista Bashissa, josta saan sen kiitos, terveisiä
Kaksi ylimääräistä osaa, vilpittömät onnitteluni.
Yksinkertaisesti ihana.
Bien
Hei, teen ohjelman CASE: lla, mitä haluan sen tekevän enkä tiedä miten, esimerkiksi:
kaiku Valitsee vaihtoehdon:
kaiku
kaiku 1. vaihtoehto 1
kaiku 2. vaihtoehto 2
kaiku 3. vaihtoehto 3
kaiku 4. vaihtoehto 4
kaiku 5. Poistu
lukea var
tapaus "$ var" sisään
1)
kaiku "Valitsit vaihtoehdon 1"
;;
2)
kaiku "Valitsit vaihtoehdon 2"
;;
3)
heitti pois "….."
;;
4)
heitti pois "…."
;;
5)
heitti pois "…"
;;
*)
kaiku "väärä vaihtoehto"
;;
ESAC
ok, en tiedä miten tehdä, on se, että kun valitsen vaihtoehdon 4, joka on poistua, kysy, haluanko todella poistua, ja annan minulle 2 vaihtoehtoa Y & N
ja toinen on se, että kun valitset jotain muuta kuin numerot 1 ... 5, älä äänestä minua komentosarjassa ...
Voitteko auttaa minua kiitos.
Hei, aloitin komentosarjat 1 kuukausi sitten ja kiitos komentosarjaviesteistäsi. Olen tehnyt noin 15-20. Kiitos paljon etukäteen. Mutta nyt opettajamme on antanut meille työpaikan, josta olen pysähtynyt. Koska opettaja kysyy:
välittää hakemiston, kopioi kotiisi kaikki hakemistossa olevat tiedostot aakkosjärjestyksessä ja nimeä ne tiedostoksi tiedosto1 tiedosto2 jne ... jne ...
Nyt olen löydön tai paikannuksen hetkellä, halusin käyttää hakua, mutta antaessani sille virhekoodin, kuten laitoin sen dev nullin kautta, käyttöoikeudet evätään, sitten väärin ja laitan paikannuksen olen täällä:
etsi $ 1 | grep "/ $ {1} \ $"
mutta tietysti tämän kanssa he kaikki tulevat ulos ...
Paljon kiitoksia, jos luet sen.
Jos voit auttaa minua, se olisi suuri palvelus.
Haluaisin sinun auttavan minua tässä.
1.-Syötä kokonaisluku näppäimistöllä ja näytä kahdesti ja kolminkertaista numero näytöllä. 2.- Tee ohjelma päättämään, voidaanko näppäimistöllä syötetty numero jakaa 3: lla vai ei.
3.- Tee ohjelma löytääksesi summan: ???????? + ????????? + ????????? ????????? ???????
4.- Tee ohjelma löytääksesi summa 1 + 3 + 5 + 7 + 9 · · · + (2n + 1).
5.-Tee ohjelma, joka tulostaa sanan Linux ruudulle 10 kertaa
6.-Tee ohjelma, joka tulostaa sanan Linux näytölle käyttäjän ilmoittamien kertojen määrällä.
7.-Syötä summa tunteina ja muunna ne minuutteihin ja sekunteihin.
8.-Laske kolmion pinta-ala
9.-Syötä numero näppäimistöllä, ja jos kirjoitat 2, sen pitäisi olla neliö, 3 kuutioinen, 4 neljänteen ja niin edelleen jopa 6.
10-Laske opiskelijan maksama eläkkeesi, syötetään erikoiskoodi ja jälkikäteen maksettavat päivät:
KOODI
ERIKOISUUS
MONTO
PÄIVÄN AIKANA
1
LASKENTA
160
1
2
SAIRAANHOITO
150
1.5
3
SIHTEERISTÖ
140
2
4
MATKAILU
180
2.5
5
KIRJANPITO
160
1
Sinun on esitettävä opiskelemasi erikoisuus, eläkekustannukset, maksukyvyttömyys ja maksettava kokonaismäärä.
Hei, voisiko joku auttaa minua?
Tarvitsen «Pyydä kolme sanaa näppäimistöllä ja näytä ne aakkosjärjestyksessä välillä A - Z»
Bash- tai sh-kielellä LINUX porfaborrrr