Bash 4, laajennus ja pienet kirjaimet

Huomaan, että Bash> 4.0 -muuttujan laajennuksessa käytetään muuttujan pienentämistä. Esimerkiksi

echo ${variable,,} 

-sivun lukeminen En todellakaan ymmärrä, miksi kuori muuntaa merkkijonon pieniksi kirjaimiksi.

Sarjalauseke on muodossa {x..y [.. incr]}, missä x ja y ovat joko kokonaisluvut tai yksittäiset merkit, ja incr, valinnainen lisäys, on kokonaisluku. Kun kokonaislukuja syötetään, lauseke laajenee jokaiselle luvulle välillä x ja y, mukaan lukien. Toimitettuihin kokonaislukuihin voidaan lisätä etuliite ”0” pakottaakseen jokaisen termin saamaan sama leveys. Kun joko x tai y alkaa nollalla, kuori yrittää pakottaa kaikki generoidut termit sisältämään saman määrän numeroita, tarvittaessa nolla-täytteenä. Kun merkkejä syötetään, lauseke laajenee jokaiselle merkille sanakirjassa x ja y, mukaan lukien, käyttämällä oletusarvoista C-aluetta. Huomaa, että sekä x: n että y: n on oltava samantyyppisiä. Kun lisäys toimitetaan, sitä käytetään kunkin termin erona. r -1 tarvittaessa.

Miksi muuttuja muunnetaan pieniksi kirjaimiksi?

Vastaa

Luet väärän osan dokumentaatiosta; katso sen sijaan kuoriparametrin laajennus .

${parameter^pattern}

${parameter^^pattern}

${parameter,pattern}

${parameter,,pattern}

Tämä laajennus muuttaa parameter -alueen aakkosmerkkien kirjainkokoa. pattern laajennetaan tuottamaan kuvio samalla tavalla kuin tiedostonimen laajennuksessa. Kutakin merkkiä parameter -laajennuksen laajennetussa arvossa testataan pattern -merkkiä vastaan, ja jos se vastaa mallia, sen kirjainkoko muunnetaan. Kuvio ei saa yrittää yhdistää useampaa kuin yhtä merkkiä. ”^” -Operaattori muuntaa pienet kirjaimet vastaavan kaavan suuriksi; operaattori ’, muuntaa vastaavat isot kirjaimet pieniksi. Laajennukset ’^^’ ja ’,, muuntavat kukin vastaavan merkin laajennetussa arvossa; ”^” ja ”,” -laajennukset vastaavat ja muuntavat vain laajennetun arvon ensimmäisen merkin. Jos pattern jätetään pois, sitä kohdellaan kuin ”?”, Joka vastaa kaikkia merkkejä. Jos parameter on @ tai *, tapausmuokkaustoimintoa käytetään vuorotellen kuhunkin sijaintiparametriin ja laajennus on tuloksena oleva luettelo. Jos parameter on taulukon muuttuja, joka on merkitty @ tai *, tapauksen muokkaustoimintoa käytetään vuorotellen ryhmän jokaiselle jäsenelle ja laajennus on tuloksena oleva luettelo.

vastaus

Lainaat ”Brace Expansion” -osaa, ”Brace-laajennus” ei ala $ -merkillä.

Suorita tämä komento:

LESS=+/"\{parameter\^pattern\}" man bash 

Löydetään ”tapauksen muokkauksen” osa, joka alkaa $ (${ ^^ }).

Vastaa

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