Först och främst vill jag be om ursäkt, eftersom jag förra fredagen inte kunde skriva inlägget så idag lägger jag till en extra för att kompensera den förlorade dagen. 🙂
Brace Expansion
På spanska verkar nyckelutvidgningen för mig vara en funktion inspirerad av C skal, detta genererar kombinationer mellan karaktärerna som matas in inom klammerparenteserna, den ordning den använder är från vänster till höger. Det är inte komplicerat alls, men det är ett alternativ som kommer att vara mycket användbart vid våra turer till GNU / Linux.
Exempelvis:
$ echo a {1,2,3} a1 a2 a3
Används med komma (,) genererar kombinationer mellan värdet a och värdena inom hängslen. Om det inte fanns något värde utanför tangenterna, skulle det bara visa en gång varje värde som nyckeln innehåller.
$ echo {a, b, c} abc
Dess användning är inte alls komplex, det finns andra vanligare exempel som att skapa många kataloger i en mapp
$ mkdir ~ / Jobb / {en, två, tre, fyra, fem}
Detta skapar fem mappar i jobbmappen, det är som att ange ett kommando i taget. Skapa de 5 katalogerna.
Det finns expansion med två punkter .. detta skapar en serie siffror eller tecken som går från det ursprungliga värdet till det slutliga värdet, använd inte siffror med bokstäver.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Icorrect {a..5} #Jag tror jag får aldrig van vid denna blå färg i bokstaven
Vi kan spara tid genom att skapa en cykel för
# I stället för att skriva $ för ((i = 1; i <= 5; i ++)); gör ekot "Mitt nummer $ i"; gjort Mitt nummer 1 Mitt nummer 2 Mitt nummer 3 Mitt nummer 4 Mitt nummer 5 #Spara kod med hjälp av brace-expansion. $ för i i {1..5}; gör echo "Mitt nummer $ i; gjort Mitt nummer 1 Mitt nummer 2 Mitt nummer 3 Mitt nummer 4 Mitt nummer 5 # Naturligtvis är det giltigt att använda även om utdata är annorlunda. $ echo" Mitt nummer "{1..5} Mitt nummer 1 Mitt nummer 2 Mitt nummer 3 Mitt nummer 4 Mitt nummer 5
Tja, jag tror att konceptet är klart, haha nu ska jag bara kommentera att det är kombinerbart och kapslat. Vad menar jag med det här?
Kan kombineras så att vi kan gå med i en eller flera tangenter
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Med häckning som många skulle kunna föreställa sig kan du använda expansionstangenter inom expansionstangenter
$ echo {a, c {1..3}, d} a c1 c2 c3 d
Och slutligen från Bash INGENTING det är möjligt att öka värdena.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Det här är allt för idag, så tack för att du läste mig människor 🙂
extra
Hur man skapar en lokal papperskorg
När jag säger a bin lokal menar jag en katalog där vi har våra egna skript och det är möjligt att köra dem som ett enkelt kommando ...
Att uppnå detta är relativt enkelt, det första du behöver göra är att skapa en katalog där vi kommer att spara skript.
mkdir ~ / .bin # I det här exemplet kommer det att döljas
Nu har vi vår mapp för att spara skript men den fungerar inte förrän vi lägger till sökvägen för den nya .bin till $ PATH
För detta redigeras filen bash_profileoch raden läggs till.
exportera PATH = $ PATH: ~ / .bin
Och voila det räcker för att skapa en lokal fack, naturligtvis kommer den att be om rootbehörigheter om det behövs för ett exempel, vi skriver ett snabbt skript.
#! / bin / bash echo "Hej $ 1, hur mår du?"
Spara den med namnet på Hallå
Skriptet får körtillstånd och det räcker bara att ringa det från terminalen
$ hej wada # Detta visar meddelandet Hej wada, hur mår du?
Så med det här snabba tricket kan du köra dina skript snabbare
Det är allt för idag människor som har det bra 🙂
PS Ledsen för misstag om det finns, mina ögon stängs redan hahaha 😀
Jag har varit i bash-frågan länge och jag hade inte förstått brace-expansionerna, tack.
På banetricket gör Fedora som standard något så här men i "~ / .local / bin", titta på ett utdrag från bash_profilen som jag tog med till Jessie.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
exportera PATH
Jag har några problem:
1. Hur får jag honom att ge mig två intervall med utvidgning efter poäng; åldrar {1..24,55..90} och att jag utvidgar åldrarna från 1 till 24 och fortsätter med 55 till nittio. som jag gjorde så fungerade det inte. Varför?
2. Om jag vill att det första värdet ska vara noll och fortsätta med numreringen:
wget: http://manga.favorito /bild http://manga.favorito/imagen1
Jag försökte på följande sätt men wget fick inte: http://manga.favorito/imagen{, 1..42} Enligt mig måste jag lämna förnamnet utan ett nummer och fortsätta med numreringen från 1 till 42 men det var inte så. Varför?
Du har rätt, vissa distros har eller haft en .bin men det är så att alla kan förstå och se att det är möjligt att göra det i vilken distro som helst: D, tack för att du kom in.
Mycket bra mycket bra för dessa kunskapsbidrag till linuxvärlden och dess säkerhet, någon fredag hoppas jag att jag kan läsa hur man formaterar en pendrive i en terminal och bränner en iso image DVD / CD av valfritt gratis system i en terminal.
Tack för dina ord bror 😀 Jag lovar att nästa fredag kommer jag att göra det inlägget. Och jag måste en om att anpassa Vim hahaha men jag ville inte att de skulle tro att det bara skulle omfatta Vim.
Utmärkt terminalartikel, det bästa jag har läst på länge, räknar flera bloggar som publicerar tutorials av denna stil. Tack så mycket!!
Tack så mycket 😀 Jag ska försöka hänga med.
Utmärkt tips på den lokala soptunnan!
Hälsningar!
Utmärkt, fantastiskt att det är användbart för dig, tack så mycket för att du passerade bror 😀
Mycket bra! Ingen aning om detta. Tack 🙂
Du är välkommen bror tack till dig för att du tog dig tid att läsa den 😀
Jag har några problem:
1. Hur får jag honom att ge mig två intervall med utvidgning efter poäng; åldrar {1..24,55..90} och att jag utvidgar åldrarna från 1 till 24 och fortsätter med 55 till nittio. som jag gjorde så fungerade det inte. Varför?
2. Om jag vill att det första värdet ska vara noll och fortsätta med numreringen:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Jag försökte på följande sätt men wget fick inte: http://manga.favorito/imagen{, 1..42} Enligt mig måste jag lämna förnamnet utan ett nummer och fortsätta med numreringen från 1 till 42 men det var inte så. Varför?
* Tyvärr men jag lade det första inlägget som svar och det var fel i vissa delar
1.- Din logik är fel, du måste bo den hahaha försök med
$ echo {{1..24},{55..90}}
2.- Samma som den föregående ...
$ echo "URL"{,{1..42}}
Oroa dig inte bror, vi är här för att hjälpa oss 🙂
För att ersätta for med eko skulle det se ut så här
eko "Mitt nummer" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
men jag föredrar printf
printf "I, I% d \ n" {1..5}
och använda samma koncept för nyckelutvidgning
atte
jvk85321
Hur sätter man terminalboxarna ????
atte
jvk85321
Testar om kodtaggen fungerar
hehe
För att ersätta for med eko skulle det se ut så här
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}
och använda samma koncept för nyckelutvidgning
atte
jvk85321
Jag sitter kvar med några buggar men det fungerade
Jag lever maluco
Ursäkta att jag stör
atte
jvk85321
Hahaha du svarade själv men om det är mellan etiketterna
Inga mellanrum ...
Och vid byte av för är det inte nödvändigt att göra så mycket rör hahahaha nog med:
echo -e "Mi numero "{1..5}"\n\b"
För att vara ärlig är printf det bästa sättet att skriva ut text i skript, det är mer bärbart men använder traditionellt eko.
Jag tar mellanslag! ha ha ha ha ha
låt oss se nu 😀
Fan det är "mindre än" kod "större än" "mindre än" / kod "större än" hahahaha
Problemet att echo -e inte är standard, så det fungerar inte på alla system.
Kommer också ut rörigt
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:~$
Och med detta
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:~$
Jag tror att den andra presenterar resultatet bättre, hahaha
atte
jvk85321
De här etiketterna är skrämmande, hehehe, låt oss se om de fungerar nu
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:~$
Och med detta
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:~$
Jag tror att den andra presenterar resultatet bättre, hahaha
atte
jvk85321
Hur som helst, lämna mellanrummen mellan raderna, det är därför jag hatar html, hahahaha
Excellent! Jag klappar i fötterna haha
Jag visste inte att nycklar kunde kapslas, eftersom jag aldrig försökte använda dem heller, det sparar verkligen mycket kod och det är också mer läsbart på detta sätt. Tack!
Tack till dig för att du passerade bror, jag är glad att det var användbart utilidad
Du är välkommen, det är det vi är här för att dela och bidra med idéer. Jag vet inte hur man programmerar, jag gjorde bara ett par saker i Bash och jag publicerade några manus som jag gjorde i två inlägg. Jag tror att detta kan göra koden lättare att förstå.