Programmēšana bash - 1. daļa

Lai gan mēs to parasti izmantojam administratīvām vai failu pārvaldības darbībām, komforts de Linux paplašina savu funkcionalitāti tālu ārpus šī mērķa, ļaujot mums programmēt skripti Šī rokasgrāmata nav paredzēta kā pilnīga atsauce uz Bash programmēšanu, bet gan ievads pamata komandām un struktūrām, kas ļaus mums paplašināt mūsu GNU / Linux sistēmas jaudu.

Kas ir "skripts"?

Būtībā mēs sakām, ka tas ir fails, kas satur kodu, kas rakstīts noteiktā programmēšanas valodā, kuru sistēma izmanto noteiktam uzdevumam. Tam nav jābūt ārējai ieejai vai grafiskam interfeisam, taču tam ir jāizraisa apstrādāti dati (pat ja lietotājs tos neredz).

Bash izmantoto valodu nosaka pats tulks un apvieno citu čaulu sintaksi, piemēram, Korn Shell (ksh) vai C Shell (csh). Daudzas komandas, kuras parasti tiek izmantotas konsolē, var izmantot arī skriptos, izņemot tās, kas stingri attiecas uz konkrētu izplatīšanu.

Skripta struktūra

Lai sāktu, mums ir jābūt teksta redaktoram un vēlmei programmēt. Failus, kurus mēs saglabājam ar paplašinājumu .sh, konsole var izpildīt (vai interpretēt), ja pirmā rinda ir šāda:

#! / bin / bash

Tas liek sistēmai faila palaišanai izmantot konsoli. Turklāt rakstzīme # ļauj rakstīt komentārus. Lai izveidotu vienkāršāko piemēru, pievienojam vēl vienu rindiņu, kas redzama šajā attēlā:

Echo komanda ekrānā parāda ziņojumu, šajā gadījumā tipisko "Hello world!" Ja mēs to saglabāsim un izpildīsim ar konsoli, mēs redzēsim rezultātu.

Pamatkomandas

Šīs komandas ir izplatītas un ļoti noderīgas jebkura veida programmām. Mēs precizējam, ka to ir daudz vairāk, taču tagad mēs aplūkosim sekojošo.

Pseidonīmi: ļauj vārdu virkni aizstāt ar īsāku, ļaujot samazināt kodu.

# izveidojiet aizstājvārdu, kas tiek saukts katram, ar mapes #Downloads aizstājvārda adresi = "/ home / user / Downloads" # Katru reizi, kad mēs to vēlamies izmantot, mums vienkārši jāsauc # jaunais vārds par # Lai iznīcinātu šo aizstājvārdu, mēs izmantojam unalias unalias per

pārtraukums: ļauj nekavējoties iziet no a, kamēr, līdz vai izvēlēties cilpu (mēs sīkāk izpētīsim cilpas vēlāk)

# Izveidojiet cilpu, kas piešķirs skaitļus no 1 līdz 5 # par katru "cilpas pagriezienu" skaitītājam 1 2 3 4 5 do # Mēs izdrukājam mainīgā #counter pašreizējo vērtību, kuru analizē raksturs $ echo " $ counter ”#Ja skaitītāja vērtība ir vienāda ar 3, ja [$ counter –eq 3], tad #The break iziet no pārtraukuma cikla

turpināt - līdzīgi pārtraukumam, izņemot to, ka tas ignorē pašreizējo cilpu un pāriet uz nākamo.

# Izveidojiet cilpu, kas piešķirs skaitļus no 1 līdz 5 # par katru "cilpas pagriezienu" skaitītājam 1 2 3 4 5 veiciet # Ja skaitītāja vērtība ir vienāda ar 3, ja [$ skaitītājs – 3. novērš atlikušā #current cikla analizēšanu, pārejot uz nākamo kārtu, tas ir, #value 3 netiks izdrukāts. turpināt fi echo "$ counter" izdarīts

deklarēt: deklarēt mainīgos un piešķirt tiem vērtības, tāpat kā tipogrāfijai (tie darbojas tāpat). Mēs to varam apvienot ar dažām opcijām: -i deklarē veselus skaitļus; -r mainīgajiem tikai lasāmiem, kuru vērtību nevar mainīt; –A masīviem vai “masīviem”; -f funkcijām; -x mainīgajiem lielumiem, kurus var "eksportēt" ārpus paša skripta vides.

deklarēt –i num = 12 deklarēt –x pi = 3.14

help: parāda palīdzību konkrētai komandai.

darbi: parāda darbojošos procesus.

# Ar –c mēs parādām komandu nosaukumu, ar –p # katra procesa pid (procesa id). darbavietas -cp

ļaut: novērtēt aritmētisko izteiksmi

let a = 11 let a = a + 5 # Visbeidzot, mēs drukājam vērtību a, kas ir 16 atbalss "11 + 5 = $ a"

vietējais: izveido lokālos mainīgos, kurus vēlams izmantot paša skripta funkcijās, lai izvairītos no kļūdām. Varat izmantot tās pašas funkcijas kā komanda deklarēt.

local v1 = "Šis ir lokāls mainīgais"

atteikties: ļauj pilnībā atteikties no čaulas; noderīgi gadījumos, kad mēs strādājam ar vairāk nekā vienu čaulas logu, kurā izejas komanda ļaus vienlaikus pārtraukt tikai vienu logu.

printf: ļauj drukāt datus un tos formatēt. Tam ir daudz iespēju, tāpēc mēs pieminēsim dažus.

#% f tiek izdrukāts kā peldošs skaitlis, n jaunai # līnijas drukai "% fn" 5 5.000000 # & d ļauj nodot decimāldaļskaitļus kā argumentus printf "Ir% d pasūtījumu, kas novērtēti% d dolāros. n" 20 500 Ir 20 pasūtījumi, kuru vērtība ir 500 Dolāri.

lasīt: lasīt rindu no standarta ievades (piemēram, modulis, ko izmanto, lai datus ielādētu, izmantojot tastatūru). Mēs varam nodot tādas iespējas kā: -t, lai dotu lasīšanas ierobežojumu; -a, lai katrs vārds tiktu piešķirts pozīcijai aname masīvā; -d izmantot atdalītāju, kas tiks ierakstīts rindas beigās; starp citiem.

echo "Ievadiet savu vārdu un nospiediet ENTER" #Lasiet mainīgā nosaukumu read name echo "Tavs vārds ir $ name"

tips: apraksta komandu un tās uzvedību. Var būt noderīgi uzzināt katras komandas datu definīcijas.

tips –a '[' #type mums saka, ka [ir Shell iebūvētā komanda [ir Shell iebūvētā # -a ļauj atrast direktorijus, kuros ir izpildāms fails ar ievadīto nosaukumu. [ir / usr / bin / [

ulimit: ierobežo piekļuvi noteiktiem sistēmas resursiem un to izmantošanu procesiem, kas ir ideāli piemērots programmām, kas ļauj veikt administratīvas izmaiņas vai ir paredzētas dažāda veida lietotājiem. Nosakot limitu, mēs uzrakstām skaitli, kas apzīmē ierobežojuma kilobaitus.

# Mēs redzam mūsu pašreizējos ierobežojumus ulimit –a # -f ļauj ierobežot lietotāju nespēju # izveidot failus, kuru lielums pārsniedz 512000 Kb (500 # MB) ulimit –f 512000 # -v ierobežo procesa virtuālo atmiņu. ulimit –v 512000

pagaidiet: pagaidiet, kamēr turpinās noteikts process vai darbs.

# Skripts gaida, kad tiks izpildīts pid # 2585 process

pagaidi 2585

Citas noderīgas komandas, kuras mēs varam pievienot skriptiem, ir attēlotas ar simboliem.

!!: vēlreiz izpildiet pēdējo komandu

! wer: izpilda pēdējo komandu, kas sākās ar izteicienu “wer”.

'==', '! =', '>', '<', '> =' un '<=': relāciju operatori.

|: OR operators parasti izmantoja divu regulāru izteiksmju savienošanu.

: escape komanda, kas ļauj formatēt izteicienus. Piemēram: a skaņas brīdinājumam, n jaunajai rindai, b atpakaļatkāpei utt.

Paldies Huanam Karlosam Ortizam!

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Vidēji Grūti teica

    Lieliski! Jebkurā gadījumā 2 komentāri: Ubuntu taga ir uz pusi par daudz, jo tas vispārina kaut ko vispārīgu. Un, ja šīs apmācības turpina virzīties uz priekšu, būtu labi, ja tās būtu savstarpēji saistītas….
    Izņemot to, šis solis ir interesants!

  2.   Izmantosim Linux teica

    Labs ieguldījums! Lieliski!

  3.   Džovanni Eskobars Sosa teica

    Trūkst tikai norāžu tiem, kas vēlas vairāk iesaistīties šajā jautājumā. Daži labi, lai arī mūsu valstīs tos nav tik viegli atrast
    - Praktisks ceļvedis Linux komandām, redaktoriem un čaulas programmēšanai, Marks Sobels (8. nodaļa)
    - Pro Bash Programming, Chris FA Johnson (lai gan tas ir paredzēts tiem, kam ir citas atsauces vai nedaudz vairāk zināšanu).

    Labs raksts.

  4.   Izmantosim Linux teica

    Labs randiņš! Paldies!

  5.   Patrīcija Dorante Džeimarne teica

    : @ Funkcija "pieteikties kā" izdzēsa manu iepriekšējo komentāru, tāpēc es to apkopošu tālāk:
    darbavietas -cp
    bash: job: -c: nederīga opcija
    job: use: job [-lnprs] [jobspec…] vai jobs -x komanda [args]

    -eq -gt -lt nepieņem decimāldaļu mainīgos, starp forumu un forumu es atklāju, ka bc ir labs sabiedrotais:
    ja [`atbalss 9.999> 10 | bc`-ekv. 1]; pēc tam
    echo "9.999 ir lielāks par 10, pārliecinieties, ka procesors joprojām darbojas"
    cits
    atbalss «9.999 nav lielāks par 10, viss darbojas normāli
    fi

  6.   NoBrooklyn teica

    Šis ieraksts ļoti labi apkopo visas bash skriptu vispārības:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Šajā vietnē jūs atradīsit daudz jautājumu un atbilžu par basu īpatnībām:
    http://unix.stackexchange.com/questions/tagged/bash

    Šeit ir daži ļoti forši skripti, un, hei, tos var iemācīties, lasot citu cilvēku skriptus:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   NoBrooklyn teica

    Jums ir taisnība ar to, ko sakāt, izņemot basu. Katrā sistēmā, kuru esmu redzējis, ir bash / bin / bash.

    Bet pitonam, perlam, rubīnam utt. Ir labi to izmantot. Jā

  8.   Guille teica

    Nejaušība, koledžā mēs izmantojam bash skriptu, tāpēc dati ir 10, ļoti labi!

  9.   alekss vi teica

    laba būtu lejupielādējama pdf versija !! 😀

  10.   Marko Antonio De Fuentess teica

    Ļoti laba vietne. Beidzot atradu ko noderīgu. Paldies.