Primeri skripta lupine Linux za zanko BASH

Kaj je treba vedeti

  • V Bashu za zanka, vsi stavki med narediti in Končano se izvedejo enkrat za vsak element na seznamu ali obsegu številk.
  • Z velikim seznamom uporabite v {list} za zanko med začetno in končno točko. Za ponovitev celotnega obsega številk uporabite tritočko, npr. za številko v {1..10}.
  • Če želite preskočiti določene številke, dodajte tretjo številko v obseg. Na primer, uporabite {0..100..10} navesti samo vsako 10. številko.

V programskem ali skriptnem jeziku Bash ponuja več načinov za ponovitev kode – proces, ki se imenuje zanka – kjer za zanka ponovi določen del kode. To omogoča izvajanje niza ukazov, dokler ni izpolnjen določen pogoj. V tem priročniku vam pokažemo, kako napisati Bash za Zanka.

Kako se vrteti po seznamu

Skriptni jeziki, kot je Bash, imajo podobne programske konstrukcije kot drugi jeziki. Na primer uvozni parametri pridobite vnos s tipkovnice in shrani te vhode kot spremenljivke, ki nato izvesti določeno dejanje na podlagi vrednosti vhodnih parametrov.

Razmislite o preprostem primeru skripta z naslovom zanka.sh:

#!/bin/bash
za število v 1 2 3 4 5
narediti
odmeva $število
Končano
izhod 0

Bash način uporabe za loops se nekoliko razlikuje od načina, kako upravljajo drugi programski in skriptni jeziki za zanke. Razčlenimo scenarij.

V BASH za zanko, vse izjave med narediti in Končano se izvedejo enkrat za vsak element na seznamu. V tem primeru je seznam vse, kar pride za besedo v-številke 1 2 3 4 5.

Vsakič, ko se zanka ponovi, se naslednja vrednost na seznamu vstavi v spremenljivko, določeno za besedo za. V zgornji zanki je spremenljivka poklicana številko.

The odmev izjava prikaže informacije na zaslonu. Zato ta primer vzame številke od 1 do 5 in izpiše vsako številko eno za drugo na zaslon:

primer zanke v skriptu bash

Kako zankati med začetno in končno točko

Težava s tem skriptom loop.sh je v tem, da če želite obdelati večji seznam (na primer od 1 do 500), bi vnašanje vseh številk trajalo dolgo. Namesto tega določite začetno in končno točko:

#!/bin/bash
za številko v {1..10}
narediti
odmev "$number"
Končano
izhod 0

Pravila so enaka. Vrednosti za besedo v sestavite seznam za ponovitev, in vsaka vrednost na seznamu je postavljena v spremenljivko (to je številka), in vsakič, ko se zanka ponovi, stavki med narediti in Končano se izvajajo.

Glavna razlika je v načinu oblikovanja seznama. Kodrasti oklepaji označujejo obseg, obseg pa je v tem primeru od 1 do 10 (dve piki ločujeta začetek in konec obsega).

Ta primer torej teče skozi vsako število med 1 in 10 in izpiše številko na zaslon.

Isto zanko bi lahko napisali takole, s sintakso identično prvemu primeru:

za število v 1 2 3 4 5 6 7 8 9 10

Kako preskočiti številke v območju

Prejšnji primer je pokazal, kako narediti zanko med začetno in končno točko. Tukaj je opisano, kako preskočiti številke v obsegu.

Na primer, če želite zankati med 0 in 100, vendar prikazati samo vsako deseto številko, uporabite naslednji skript, da dobite ta izhod:

#!/bin/bash
za številko v {0..100..10}
narediti
odmev "$number"
Končano
izhod 0

Pravila so enaka. Med njimi je seznam, spremenljivka in niz stavkov narediti in Končano. Tokratni seznam izgleda takole: {0..100..10}.

Prva številka je 0, končna številka pa 100. Tretja številka (10) je število elementov na seznamu, ki jih bo preskočil.

Zgornji primer torej prikazuje naslednji izhod:

alternativni izhod bash zanke

Praktični primer

Zanke naredijo več kot samo ponavljanje seznamov številk. Na primer, uporabite izhod drugih ukazov kot seznam.

Naslednji primer prikazuje, kako pretvoriti zvočne datoteke iz MP3 do WAV:

#!/bin/bash
za datoteko v ./*.mp3
narediti
mpg -w ./wavs/"${file}".wav "$file"
Končano

Seznam v tem primeru je vsaka datoteka s pripono .MP3 v trenutni mapi, spremenljivka pa je datoteka.

Ukaz mpg pretvori datoteko MP3 v WAV. Vendar pa boste verjetno morali najprej namestiti to orodje z upraviteljem paketov.