Najprej bi se rad opravičil, ker prejšnji petek nisem mogel napisati prispevka, zato bom danes dodal še dodatka, da nadoknadim izgubljeni dan. 🙂
Razširitev naramnic
V španščini se mi zdi razširitev ključa funkcija, ki jo navdihuje C lupina, to ustvari kombinacije med znaki, ki so vneseni v oklepaje, vrstni red, ki ga uporablja, pa je od leve proti desni. Sploh ni zapleteno, je pa možnost, ki bo zelo koristna pri naših ogledih GNU / Linuxa.
Primer:
$ echo a {1,2,3} a1 a2 a3
Kadar se uporablja z vejicami (,) generira kombinacije med vrednostjo a in vrednostmi v oklepajih. Če zunaj oklepajev ne bi bilo vrednosti, bi vsaka vrednost prikazala le enkrat.
$ echo {a, b, c} abc
Njegova uporaba sploh ni zapletena, obstajajo tudi drugi bolj pogosti primeri, kot je ustvarjanje številnih imenikov v mapi
$ mkdir ~ / Jobs / {ena, dve, tri, štiri, pet}
Tako se v mapi opravil ustvari pet map, to je kot vnos enega ukaza naenkrat. Ustvarjanje 5 imenikov.
Razširitev je za dve točki .. to ustvari niz številk ali znakov, ki gredo od začetne vrednosti do končne vrednosti, ne uporabljajte številk s črkami.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Mislim, da nikoli ne bom dobil navajena na to modro barvo v pismu
Z ustvarjanjem cikla lahko prihranimo čas za
# Namesto pisanja $ for ((i = 1; i <= 5; i ++)); naredi echo "Moja številka $ i"; končano Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5 # Shrani kodo z razširitvijo oklepaja. $ za i v {1..5}; do echo "Moja številka $ i; done Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5 # Seveda je veljavna za uporabo, čeprav je izhod drugačen. $ echo" Moja številka "{1..5} Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5
No, mislim, da je koncept jasen, haha, zdaj bom le komentiral, da je združljiv in ugnezden. Kaj mislim s tem?
Z združljivim, da lahko združimo enega ali več ključev
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Z gnezdenjem, kot bi si mnogi predstavljali, lahko uporabite razširitvene tipke znotraj razširitvenih tipk
$ echo {a, c {1..3}, d} a c1 c2 c3 d
In končno od Bash NIČ vrednosti je mogoče povečati.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
To je vse za danes, zato hvala, ker ste me prebrali 🙂
extra
Kako ustvariti lokalni koš
Ko rečem a bin local mislim na imenik, v katerem imamo svoje skripte in jih je mogoče zagnati kot preprost ukaz ...
To je razmeroma enostavno, najprej morate ustvariti imenik, kamor bomo shranili skripte.
mkdir ~ / .bin # V tem primeru bo skrit
Zdaj imamo svojo mapo za shranjevanje skriptov, vendar ne bo delovala, dokler ne dodamo poti novega .bin v $ PATH
Za to je datoteka urejena bash_profil, in vrstica se doda.
izvoz POT = $ PATH: ~ / .bin
In voila, ki je dovolj za ustvarjanje lokalnega koša, bo seveda zahteval root dovoljenja, če bo potrebno, na primer napišemo hitri skript.
#! / bin / bash echo "Živjo $ 1, kako si?"
Shranite z imenom zdravo
Skriptu je dano dovoljenje za izvajanje in dovolj bo le, da ga pokličete s terminala
$ hello wada # Prikazalo se bo sporočilo Hello wada, kako si?
S tem hitrim trikom lahko hitreje zaženete svoje skripte
To je vse za današnje ljudi, ki so dobro 🙂
PS Oprostite za napake, če obstajajo, se mi oči že zapirajo hahaha 😀
Že dolgo sem v bash-u in nisem razumel teh razširitev nosilcev, hvala.
Na triku poti Fedora privzeto naredi nekaj takega, toda v "~ / .local / bin" si oglejte delček iz bash_profile, ki sem ga prinesel Jessie.
POT = $ PATH: $ HOME / .local / bin: $ HOME / bin
izvozi POT
Imam nekaj pomislekov:
1. Kako naj dobim dva intervala s širjenjem po točkah; starosti {1..24,55..90} in razširiti starost z 1 na 24 in nadaljevati s 55 na devetdeset. kot sem storil, ni šlo. Zakaj?
2. Če želim, da je prva vrednost nična, in nadaljujem s oštevilčenjem:
wget: http://manga.favorito / slika http://manga.favorito/imagen1
Poskusil sem na naslednji način, vendar wget ni dobil: http://manga.favorito/imagen{, 1..42} Po mojem mnenju bi moral ime pustiti brez številke in nadaljevati s oštevilčenjem od 1 do 42, vendar ni bilo tako. Zakaj?
Prav imaš, nekateri distroji imajo ali so imeli .bin, vendar je tako, da lahko vsi razumejo in vidijo, da je to mogoče storiti v katerem koli distroju: D, hvala, da si se ustavil.
Zelo dobro zelo dobro za te prispevke znanja k svetu linuxa in njegovi varnosti, v petek upam, da bi lahko prebral, kako formatirati pendrive v terminalu in zapisati iso DVD / CD sliko katerega koli prostega sistema v terminalu.
Hvala za vaše besede bratec. Obljubim, da bom prihodnji petek to objavil. In jaz moram nekaj o prilagoditvi Vima hahaha, vendar nisem hotel, da bi mislili, da bo zajemal le Vima.
Odličen terminalski članek, najboljši, ki sem ga že dolgo prebral, šteje več blogov, ki objavljajo vaje tega sloga. Najlepša hvala!!
Najlepša hvala 😀 Poskušal bom nadaljevati.
Odličen namig lokalnega koša!
Lep pozdrav!
Odlično, super, da je koristno za vas, najlepša hvala, ker ste šli mimo brata 😀
Zelo dobro! Pojma o tem nimam. Hvala 🙂
Dobrodošel brat, hvala, ker si si vzel čas za branje 😀
Imam nekaj pomislekov:
1. Kako naj dobim dva intervala s širjenjem po točkah; starosti {1..24,55..90} in razširiti starost z 1 na 24 in nadaljevati s 55 na devetdeset. kot sem storil, ni šlo. Zakaj?
2. Če želim, da je prva vrednost nična, in nadaljujem s oštevilčenjem:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Poskusil sem na naslednji način, vendar wget ni dobil: http://manga.favorito/imagen{, 1..42} Po mojem mnenju bi moral ime pustiti brez številke in nadaljevati s oštevilčenjem od 1 do 42, vendar ni bilo tako. Zakaj?
* Oprostite, ampak kot odgovor sem dal prvo objavo, ki je bila v nekaterih delih napačna
1. - Vaša logika je napačna, morate jo ugnezditi hahaha poskusite
$ echo {{1..24},{55..90}}
2. - Enako kot prejšnji ...
$ echo "URL"{,{1..42}}
Ne skrbi brate, tu smo, da nam pomagamo 🙂
Če bi for zamenjali z odmevom, bi to izgledalo takole
echo "Moja številka" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
ampak raje printf
printf "I, I% d \ n" {1..5}
in uporabite isti koncept razširitve ključa
jasno Atte
jvk85321
Kako postavim priključne omarice ????
jasno Atte
jvk85321
Preizkušanje, ali kodna oznaka deluje
Hehe
Če bi for zamenjali z odmevom, bi to izgledalo takole
echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’
pero prefiero printf
printf “Mi numero %d\n” {1..5}
in uporabite isti koncept razširitve ključa
jasno Atte
jvk85321
Preostalo mi je nekaj napak, vendar je uspelo
Živim maluco
Oprostite za motenje
jasno Atte
jvk85321
Hahaha, sam si odgovoril, pa če je med nalepkami
brez presledkov ...
In pri zamenjavi for ni treba narediti toliko cevi hahahaha dovolj z:
echo -e "Mi numero "{1..5}"\n\b"
Če sem iskren, je printf najboljši način za tiskanje besedila v skriptah, je bolj prenosljiv, vendar tradicionalno uporablja odmev.
Vzamem prostore! hahahahaha
poglejmo zdaj 😀
Jebi ga, manj kot "koda" je večja od "manj kot" / koda "večja od" hahahaha
Težava, da echo -e ni standardna, zato ne deluje v vseh sistemih.
Prihaja tudi grdo
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
In s tem
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Mislim, da drugi bolje predstavlja rezultat, hahaha
jasno Atte
jvk85321
Te nalepke so neprijetne, hehehe, poglejmo, ali se bodo zdaj obnesle
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
In s tem
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Mislim, da drugi bolje predstavlja rezultat, hahaha
jasno Atte
jvk85321
Kakorkoli, pusti presledke med vrsticami, zato sovražim html, hahahaha
Odlično! Ploskam po nogah haha
Nisem vedel, da lahko ključe gnezdijo, saj jih tudi nikoli nisem poskušal uporabiti, res prihrani veliko kode in je tudi bolj berljiv na ta način. Hvala vam!
Zahvaljujem se vam za mimogrede, brat, vesel sem, da je bilo koristno
Vabljeni, zato smo tu, da lahko delimo in prispevamo ideje. Ne vem, kako programirati, v Bashu sem naredil le nekaj stvari in v dveh objavah objavil nekaj scenarijev, ki sem jih naredil. Mislim, da lahko to vedo olajša razumevanje kode.