Først og fremmest vil jeg gerne undskylde, da jeg sidste fredag ikke kunne skrive indlægget, så i dag vil jeg tilføje en ekstra for at kompensere for den tabte dag. 🙂
Brace-udvidelse
På spansk synes nøgleudvidelse for mig at være en funktion inspireret af C skal, dette genererer kombinationer mellem de tegn, der indtastes inden i selerne, den rækkefølge, den bruger, er fra venstre til højre. Det er slet ikke kompliceret, men det er en mulighed, der vil være meget nyttig i vores ture i GNU / Linux.
Eksempel:
$ ekko en {1,2,3} a1 a2 a3
Når det bruges med kommaer (,) genererer kombinationer mellem værdien a og værdierne inden i selerne. Hvis der ikke var nogen værdi uden for nøglerne, ville den kun vise en gang hver værdi, som nøglen indeholder.
$ echo {a, b, c} abc
Dens anvendelse er slet ikke kompleks, der er andre mere almindelige eksempler, såsom at oprette mange mapper i en mappe
$ mkdir ~ / Jobs / {en, to, tre, fire, fem}
Dette opretter fem mapper i jobmappen, det er som at indtaste en kommando ad gangen. Oprettelse af de 5 mapper.
Der er ekspansion med to punkter .. Dette opretter en række numre eller tegn, der går fra den oprindelige værdi til den endelige værdi, og brug ikke bogstaverne.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} # Incorrect {a..5} #Jeg tror jeg vil aldrig vænne mig til dette blå farve i bogstavet
Vi kan spare tid ved at oprette en cyklus forum
#I stedet for at skrive $ for ((i = 1; i <= 5; i ++)); gør ekko "Mit nummer $ i"; gjort Mit nummer 1 Mit nummer 2 Mit nummer 3 Mit nummer 4 Mit nummer 5 # Gem kode ved hjælp af bøjleudvidelse. $ for i i {1..5}; gør ekko "Mit nummer $ i; færdigt Mit nummer 1 Mit nummer 2 Mit nummer 3 Mit nummer 4 Mit nummer 5 # Selvfølgelig er det gyldigt at bruge, selvom output er anderledes. $ echo" Mit nummer "{1..5} Mit nummer 1 Mit nummer 2 Mit nummer 3 Mit nummer 4 Mit nummer 5
Nå, jeg tror, konceptet er klart, haha nu vil jeg kun kommentere, at det er kombinerbart og indlejret. Hvad mener jeg med dette?
Kan kombineres, så vi kan slutte os til en eller flere taster
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Med indlejring som mange ville forestille sig, kan du bruge udvidelsestaster inden for udvidelsestaster
$ echo {a, c {1..3}, d} a c1 c2 c3 d
Og endelig fra Bash INGENTING det er muligt at øge værdierne.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Dette er alt for i dag, så tak fordi du læste mig mennesker 🙂
Ekstra
Sådan oprettes en lokal skraldespand
Når jeg siger en bin lokal Jeg mener en mappe, hvor vi har vores egne scripts, og det er muligt at udføre dem som en simpel kommando ...
Det er relativt let at opnå dette, det første du skal gøre er at oprette en mappe, hvor vi gemmer scripts.
mkdir ~ / .bin # I dette eksempel skjules det
Nu har vi vores mappe til at gemme scriptsne, men den fungerer ikke, før vi tilføjer stien til den nye .bin til $ PATH
Til dette redigeres filen bash_profile, og linjen tilføjes.
eksporter PATH = $ PATH: ~ / .bin
Og voila, det er nok til at oprette en lokal bin, selvfølgelig vil den bede om rodtilladelser, hvis det er nødvendigt for et eksempel, vi skriver et hurtigt script.
#! / bin / bash echo "Hej $ 1, hvordan har du det?"
Gem det med navnet på Hej
Scriptet får eksekveringstilladelse, og det er kun nok til at kalde det fra terminalen
$ hej wada # Dette viser beskeden Hej wada, hvordan har du det?
Så med dette hurtige trick kan du køre dine scripts hurtigere
Det er alt for i dag mennesker, der har det godt 🙂
PS Undskyld for fejl, hvis der er, lukker mine øjne allerede hahaha 😀
Jeg har været i bash-spørgsmålet i lang tid, og jeg havde ikke forstået bøjleudvidelserne, tak.
På sti-tricket gør Fedora som standard noget som dette, men i "~ / .local / bin" skal du se på et uddrag fra bash_profilen, som jeg bragte til Jessie.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
eksporter PATH
Jeg har nogle bekymringer:
1. Hvordan får jeg ham til at give mig to intervaller med udvidelse med point; i alderen {1..24,55..90} og at jeg udvider aldre fra 1 til 24 og fortsætter med 55 til XNUMX. som jeg gjorde, fungerede det ikke. Hvorfor?
2. Hvis jeg vil have den første værdi til at være nul og fortsæt med nummereringen:
wget: http://manga.favorito /billede http://manga.favorito/imagen1
Jeg prøvede følgende måde, men wget fik ikke: http://manga.favorito/imagen{, 1..42} Ifølge mig bliver jeg nødt til at forlade fornavnet uden et nummer og fortsætte med nummereringen fra 1 til 42, men det var ikke sådan. Hvorfor?
Du har ret, nogle distroer har eller havde en .bin, men det er så alle kan forstå og se, at det er muligt at gøre det i enhver distro: D, tak fordi du kom forbi.
Meget godt meget godt for disse videnbidrag til Linux-verdenen og dens sikkerhed, en fredag håber jeg, jeg kunne læse, hvordan man formaterer en pendrive i en terminal og brænder et iso DVD / CD-billede af ethvert gratis system i en terminal.
Tak for dine ord bror 😀 Jeg lover, at næste fredag vil jeg gøre det indlæg. Og jeg må en om at tilpasse Vim hahaha, men jeg ville ikke have dem til at tro, at det kun ville omfatte Vim.
Fremragende terminalartikel, det bedste jeg har læst i lang tid, tæller flere blogs, der udgiver tutorials af denne stil. Mange tak!!
Mange tak 😀 Jeg vil prøve at følge med.
Fremragende tip til den lokale skraldespand!
Greetings!
Fremragende, dejligt at det er nyttigt for dig, meget tak for din forbipasserende bror 😀
Meget godt! Ingen idé om dette. Tak 🙂
Du er velkommen bror tak til dig, fordi du tog dig tid til at læse den 😀
Jeg har nogle bekymringer:
1. Hvordan får jeg ham til at give mig to intervaller med udvidelse med point; i alderen {1..24,55..90} og at jeg udvider aldre fra 1 til 24 og fortsætter med 55 til XNUMX. som jeg gjorde, fungerede det ikke. Hvorfor?
2. Hvis jeg vil have den første værdi til at være nul og fortsæt med nummereringen:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Jeg prøvede følgende måde, men wget fik ikke: http://manga.favorito/imagen{, 1..42} Ifølge mig bliver jeg nødt til at forlade fornavnet uden et nummer og fortsætte med nummereringen fra 1 til 42, men det var ikke sådan. Hvorfor?
* Undskyld, men jeg satte det første indlæg som et svar, og det var forkert i nogle dele
1.- Din logik er forkert, du skal rede den hahaha prøv med
$ echo {{1..24},{55..90}}
2.- Samme som den forrige ...
$ echo "URL"{,{1..42}}
Bare rolig broder, vi er her for at hjælpe os 🙂
For at erstatte for med ekko ville det se sådan ud
ekko "Mit nummer" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
men jeg foretrækker printf
printf "I, I% d \ n" {1..5}
og bruge det samme koncept med nøgleudvidelse
atte
jvk85321
Hvordan placerer du klemkasserne ????
atte
jvk85321
Tester, om kodekoden fungerer
hehe
For at erstatte for med ekko ville det se sådan ud
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}
og bruge det samme koncept med nøgleudvidelse
atte
jvk85321
Jeg er tilbage med nogle bugs, men det fungerede
Jeg lever maluco
Undskyld for at gider
atte
jvk85321
Hahaha du svarede dig selv, men hvis det er mellem etiketterne
ingen plads ...
Og ved udskiftning af for er det ikke nødvendigt at gøre så meget rør hahahaha nok med:
echo -e "Mi numero "{1..5}"\n\b"
For at være ærlig er printf den bedste måde at udskrive tekst i scripts på, det er mere bærbart, men bruger traditionelt ekko.
Jeg tager pladserne! hahahahaha
lad os se nu 😀
Fuck det er "mindre end" kode "større end" "mindre end" / kode "større end" hahahaha
Problemet med at ekko -e ikke er standard, så det fungerer ikke på alle systemer.
Også kommer ud rodet
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:~$
Og med dette
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:~$
Jeg tror, det andet præsenterer resultatet bedre, hahaha
atte
jvk85321
Disse etiketter er en bummer, hehehe, lad os se om de fungerer 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:~$
Og med dette
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:~$
Jeg tror, det andet præsenterer resultatet bedre, hahaha
atte
jvk85321
Under alle omstændigheder skal du forlade mellemrummene mellem linjerne, det er derfor, jeg hader html, hahahaha
Fremragende! Jeg klapper med fødderne haha
Jeg vidste ikke, at nøgler kunne være indlejrede, da jeg aldrig prøvede at bruge dem heller, det sparer virkelig en masse kode, og det er også mere læsbart på denne måde. Tak skal du have!
Tak til dig for forbipasserende bror, jeg er glad for, at det var nyttigt utilidad
Du er velkommen, det er det, vi er her for at dele og bidrage med ideer. Jeg ved ikke, hvordan jeg programmerer, jeg lavede bare et par ting i Bash, og jeg offentliggjorde i to indlæg nogle scripts, som jeg gjorde. Jeg tror, at kende dette kan gøre koden lettere at forstå.