Ohjelmointi bashissa - osa 1

Vaikka käytämme sitä yleensä hallinnollisiin tai tiedostojen hallintaan, mukavuus de Linux laajentaa toimintojaan kauas tätä tarkoitusta, jolloin voimme ohjelmoida skriptejä Tämän oppaan ei ole tarkoitus olla täydellinen viite Bash-ohjelmointiin, vaan pikemminkin johdanto peruskomennoille ja -rakenteille, joiden avulla voimme laajentaa GNU / Linux-järjestelmän tehoa.

Mikä on "Script"?

Pohjimmiltaan sanomme, että se on tiedosto, joka sisältää tietyllä ohjelmointikielellä kirjoitetun koodin, jota järjestelmä käyttää tiettyyn tehtävään. Sillä ei tarvitse olla ulkoista sisääntuloa tai graafista käyttöliittymää, mutta se saa aikaan käsiteltyjen tietojen tuottamisen (vaikka käyttäjä ei näe niitä).

Bashin käyttämä kieli määritellään sen omalla tulkilla ja yhdistää muiden kuorien, kuten Korn-kuoren (ksh) tai C-kuoren (csh), syntaksin. Monia konsolissa yleensä käytettyjä komentoja voidaan käyttää myös komentosarjoissa, paitsi ne, jotka liittyvät tiukasti tiettyyn jakeluun.

Komentosarjan rakenne

Aluksi meillä on oltava tekstieditori ja halu ohjelmoida. Konsoli voi suorittaa (tai tulkita) tiedostot, jotka tallennamme .sh-laajennuksella, kunhan ensimmäinen rivi on seuraava:

#! / Bin / bash

Tämä kehottaa järjestelmää käyttämään tiedostoa konsolilla. Lisäksi # -merkin avulla voit kirjoittaa kommentteja. Yksinkertaisen esimerkin luomiseksi lisäämme vielä yhden rivin, joka näkyy seuraavassa kuvassa:

Kaiku-komento näyttää näytöllä viestin, tässä tapauksessa tyypillisen "Hello world!" Jos tallennamme sen ja suoritamme sen konsolilla, näemme tuloksen.

Peruskomennot

Seuraavat komennot ovat yleisiä ja erittäin hyödyllisiä kaiken tyyppisille ohjelmille. Selvennämme, että niitä on paljon enemmän, mutta nyt käsittelemme seuraavaa.

Alias: sallii sanamerkkijonon korvaamisen lyhyemmällä, mikä mahdollistaa koodin pienentämisen.

#luo alias, jota kutsutaan nimellä #Downloads-kansion alias per = '/ home / user / Downloads' # osoite

tauko: antaa sinun poistua välittömästi silmukasta, kun, kunnes tai valitse silmukka (tutkimme silmukoita yksityiskohtaisesti myöhemmin)

#Luo silmukka, joka antaa numerot 1: stä 5: een # jokaiselle "silmukan käännökselle" laskurille 1 2 3 4 5 tee # Tulostamme muuttujan #counter nykyisen arvon, jota analysoi merkki $ echo " $ counter ”#Jos laskurin arvo on yhtä suuri kuin 3, jos [$ counter –eq 3], niin # Break katkaisee tauon

jatka - samanlainen kuin rikkoutuminen, paitsi että se ohittaa nykyisen silmukan ja siirtyy seuraavaan.

#Luo silmukka, joka määrittää numerot 1: stä 5: een # jokaiselle "silmukan käännökselle" laskurille 1 2 3 4 5 tee #Jos laskurin arvo on yhtä suuri kuin 3, jos [$ counter –eq 3], sitten # Jatka estää jäljellä olevan # nykyisen jakson analysoinnin siirtymällä seuraavalle kierrokselle, eli # arvo 3 ei tulostu. jatka fi echo "$ counter" valmis

julistaa: julista muuttujat ja määritä heille arvot, kuten tyyppisarja (ne toimivat samalla tavalla). Voimme yhdistää sen joihinkin vaihtoehtoihin: -i ilmoittaa kokonaisluvut; -r vain luku -muuttujille, joiden arvoa ei voida muuttaa; –A matriiseille tai 'matriiseille'; -f toiminnoille; -x muuttujille, jotka voidaan "viedä" itse komentosarjan ympäristön ulkopuolelle.

julista –i num = 12 ilmoita –x pi = 3.14

help: näyttää tietyn komennon ohjeet.

työpaikat: näyttää käynnissä olevat prosessit.

#W: llä - c näytetään komentojen nimi, kunkin prosessin kohdalla –p # pid (prosessin tunnus). työpaikat -cp

anna: arvioi aritmeettinen lauseke

anna a = 11 anna a = a + 5 # lopuksi tulostamme arvon a, joka on 16 kaikua "11 + 5 = $ a"

local: luo paikallisia muuttujia, joita tulisi käyttää mieluiten itse komentosarjan toiminnoissa virheiden välttämiseksi. Voit käyttää samoja toimintoja kuin julista-komento.

local v1 = "Tämä on paikallinen muuttuja"

uloskirjautuminen: sallii kirjautumisen kokonaan Shellistä; hyödyllinen tapauksissa, joissa työskentelemme useamman kuin yhden Shell-ikkunan kanssa, joissa exit-komento sallii vain yhden ikkunan sulkemisen kerrallaan.

printf: voit tulostaa tietoja ja muotoilla ne. Sillä on monia vaihtoehtoja, joten mainitsemme muutaman.

#% f tulostuu kelluvana numerona, n uudelle # rivitulostukselle "% fn" 5 5.000000 # & d sallii desimaaliluvun välittämisen argumentteina printf "% d tilausta on arvioitu% d dollarissa. n" 20 500 Dollareita.

lue: lue rivi vakiotulosta (moduulia käytetään esimerkiksi tietojen lataamiseen näppäimistön kautta). Voimme välittää vaihtoehtoja, kuten: -t antaa lukemiselle rajoitetun ajan; -a niin, että jokainen sana osoitetaan aname-taulukon sijaintiin; -d käyttää erottinta, joka kirjoitetaan rivin loppuun; muiden joukossa.

echo "Kirjoita nimesi ja paina ENTER" #Lue muuttujan nimi read name echo "Nimesi on $ name"

type: kuvaa komentoa ja sen käyttäytymistä. Voi olla hyödyllistä selvittää kunkin komennon tietomääritelmät.

tyyppi –a '[' #type kertoo meille, että [on Shellin sisäänrakennettu komento [on Shellin sisäänrakennettu # -a antaa hakemistojen, jotka sisältävät # suoritettavan tiedoston kirjoitetulla nimellä. [on / usr / bin / [

ulimit: rajoittaa tiettyjen järjestelmäresurssien pääsyn ja käytön prosesseihin, ihanteellinen ohjelmille, jotka sallivat hallinnolliset muutokset tai jotka on suunnattu erityyppisille käyttäjille. Rajaa asetettaessa kirjoitamme luvun, joka edustaa rajan kilotavua.

# Näemme nykyiset rajoituksemme ulimit –a # -f sallii käyttäjien rajoittamisen siihen, että he eivät pysty # luomaan yli 512000 kt: n (500 # MB) tiedostoja ulimit –f 512000 # -v rajoittaa prosessin virtuaalimuistia. ulimit –v 512000

odota: odota, että tietty prosessi tai työ jatkuu.

# Skripti odottaa pid # 2585 -prosessin suorittamista

odota 2585

Muita hyödyllisiä komentoja, jotka voimme lisätä skripteihin, edustavat symbolit.

!!: Suorita viimeinen komento uudelleen

! wer: suorittaa viimeisen komennon, joka alkoi lausekkeella "wer".

'==', '! =', '>', '<', '> =' ja '<=': relaatio-operaattorit.

|: OR-operaattorilla oli tapana liittää kaksi säännöllistä lauseketta.

: escape-komento, jonka avulla voit muotoilla lausekkeita. Esimerkiksi: a äänimerkille, n uudelle riville, b askelpalautukselle jne.

Kiitos Juan Carlos Ortiz!

Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

10 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Keskivaikea dijo

    Loistava! Joka tapauksessa, 2 kommenttia: Ubuntu-tunniste on puoli liikaa, koska se yleistää jotain yleistä. Ja jos nämä opetusohjelmat jatkavat etenemistä, olisi hyvä, jos ne yhdistetään toisiinsa.
    Muuten tämä liike on mielenkiintoinen!

  2.   Käytetään Linuxia dijo

    Hyvä panos! Loistava!

  3.   Giovanni escobar sosa dijo

    Ainoastaan ​​puuttuvat viitteet niille, jotka haluavat saada enemmän asiaan. Jotkut hyvät ovat, vaikka niitä ei ole niin helppo löytää maastamme
    - Käytännön opas Linux-komentoihin, muokkaajiin ja kuoren ohjelmointiin, Mark Sobell (luku 8)
    - Pro Bash -ohjelmointi, Chris FA Johnson (vaikka tämä on tarkoitettu niille, joilla on muita viitteitä tai vähän enemmän tietoa).

    Hyvä artikkeli.

  4.   Käytetään Linuxia dijo

    Hyvä päivä! Kiitos!

  5.   Patricio Dorantes Jamarne dijo

    : @ "Kirjaudu sisään" -toiminto poisti edellisen kommenttini, joten tiivistän sen edelleen:
    työpaikat -cp
    bash: työpaikat: -c: virheellinen vaihtoehto
    työpaikat: käyttö: työpaikat [-lnprs] [jobspec…] tai työpaikat -x-komento [args]

    -eq -gt -lt eivät hyväksy desimaalimuuttujia, foorumin ja foorumin välillä huomasin, että bc on hyvä liittolainen:
    jos [`kaiku 9.999> 10 | bc-eq 1]; sitten
    echo "9.999 on suurempi kuin 10, varmista, että prosessori toimii edelleen"
    muu
    kaiku «9.999 ei ole suurempi kuin 10, kaikki toimii normaalisti
    fi

  6.   Ei Brooklynista dijo

    Tämä viesti tiivistää erittäin hyvin kaikki bash-komentosarjojen yleiset ominaisuudet:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Tältä sivustolta löydät monia kysymyksiä ja vastauksia bash-erityispiirteistä:
    http://unix.stackexchange.com/questions/tagged/bash

    Tässä on joitain todella hienoja komentosarjoja, ja hei, voit oppia ne lukemalla muiden komentosarjoja:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   Ei Brooklynista dijo

    Olet oikeassa siinä, mitä sanot, paitsi bash. Jokaisella järjestelmällä, jonka olen nähnyt, on bash / bin / bash.

    Mutta pythonille, perlille, rubiinille jne., On hienoa käyttää sitä. tahdon

  8.   Guille dijo

    Sattumalta, yliopistossa käytämme bash-komentosarjoja, joten tietoja on 10, erittäin hyvä!

  9.   Alex vi dijo

    pdf-versio ladattavaksi olisi hyvä! 😀

  10.   Marco Antonio De Fuentes dijo

    Erittäin hyvä sivusto. Löysin vihdoin jotain hyödyllistä. Kiitos.