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 testataanpattern
-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. Jospattern
jätetään pois, sitä kohdellaan kuin ”?”, Joka vastaa kaikkia merkkejä. Josparameter
on @ tai *, tapausmuokkaustoimintoa käytetään vuorotellen kuhunkin sijaintiparametriin ja laajennus on tuloksena oleva luettelo. Josparameter
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 $
(${ ^^ }
).