În primul rând aș vrea să-mi cer scuze, deoarece vinerea trecută nu am putut scrie postarea, așa că astăzi voi adăuga un plus pentru a compune ziua pierdută. 🙂
Extinderea bretelei
În limba spaniolă, expansiunea cheii mi se pare a fi o funcție inspirată din c-coaja, aceasta generează combinații între caracterele care sunt introduse în interiorul parantezelor, ordinea pe care o folosește este de la stânga la dreapta. Nu este deloc complicat, dar este o opțiune care va fi foarte utilă în tururile noastre de GNU / Linux.
Exemplu:
$ echo a {1,2,3} a1 a2 a3
Când se utilizează cu virgule (,) generează combinații între valoarea a și valorile din interiorul parantezelor. Dacă nu există nicio valoare în afara parantezelor, aceasta se va afișa doar o dată pe fiecare valoare pe care o conține cheia.
$ echo {a, b, c} abc
Utilizarea sa nu este deloc complexă, există alte exemple mai frecvente, cum ar fi crearea multor directoare într-un folder
$ mkdir ~ / Jobs / {unu, doi, trei, patru, cinci}
Aceasta creează cinci foldere în folderul joburi, este ca și cum ai introduce o comandă la un moment dat. Crearea celor 5 directoare.
Există expansiune cu două puncte .. acest lucru creează o serie de numere sau caractere care merg de la valoarea inițială la valoarea finală, nu utilizați cifre cu litere.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Cred că nu voi primi niciodată obișnuit cu această culoare albastră din scrisoare
Putem economisi timp creând un ciclu pentru
# În loc să scrie $ for ((i = 1; i <= 5; i ++)); ecou „Numărul meu $ i”; gata Numărul meu 1 Numărul meu 2 Numărul meu 3 Numărul meu 4 Numărul meu 5 #Salvați codul utilizând extensia de bretele. $ pentru i în {1..5}; ecou "Numărul meu $ i; terminat Numărul meu 1 Numărul meu 2 Numărul meu 3 Numărul meu 4 Numărul meu 5 #Bineînțeles este valabil să se utilizeze, deși rezultatul este diferit. $ echo" Numărul meu "{1..5} Numărul meu 1 Numărul meu 2 Numărul meu 3 Numărul meu 4 Numărul meu 5
Ei bine, cred că conceptul este clar, haha acum voi doar să comentez că este combinabil și imbricat. Ce vreau să spun prin asta?
Cu combinabil la care putem uni una sau mai multe taste
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Cu imbricarea, așa cum mulți și-ar imagina că puteți utiliza cheile de expansiune în interiorul tastelor de expansiune
$ echo {a, c {1..3}, d} a c1 c2 c3 d
Și în sfârșit de la Lovitură 4 este posibil să crească valorile.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Totul este astăzi, așa că mulțumesc că mi-ai citit oamenii reading
în plus
Cum se creează un coș local
Când spun a bin local mă refer la un director în care avem propriile noastre scripturi și este posibil să le executăm ca o simplă comandă ...
Realizarea acestui lucru este relativ ușoară, primul lucru pe care trebuie să-l faceți este să creați un director în care vom salva scripturile.
mkdir ~ / .bin # În acest exemplu va fi ascuns
Acum avem folderul nostru pentru a salva scripturile, dar nu va funcționa până când nu adăugăm calea noului .bin la $ PATH
Pentru aceasta, fișierul este editat bash_profileși se adaugă linia.
export PATH = $ PATH: ~ / .bin
Și voila, care este suficient pentru a crea un coș local, bineînțeles că va cere permisiuni root dacă este necesar pentru un exemplu, scriem un script rapid.
#! / bin / bash echo "Bună $ 1, ce mai faci?"
Salvați-l cu numele de Alo
Scriptului i se acordă permisiunea de execuție și va fi suficient doar să îl apelați de la terminal
$ hola wada # Aceasta va afișa mesajul Hello wada, ce mai faci?
Deci, cu acest truc rapid puteți rula scripturile mai repede
Asta-i tot pentru oamenii de astăzi care sunt bine 🙂
PS Îmi pare rău pentru greșeli, dacă există, ochii mei deja se închid hahaha 😀
Sunt în problema bash de mult timp și nu înțelegusem extinderea bretelei astea, mulțumesc.
Despre trucul de cale, Fedora implicit face așa ceva, dar în „~ / .local / bin”, uită-te la un fragment din bash_profile pe care l-am adus lui Jessie.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
exporta CALEA
Am unele îngrijorări:
1. Cum îl fac să-mi acorde două intervale cu extindere prin puncte; vârste {1..24,55..90} și pentru a extinde vârstele de la 1 la 24 și a continua cu 55 la nouăzeci. așa cum am făcut, nu a funcționat. De ce?
2. Dacă vreau ca prima valoare să fie nulă și să continui cu numerotarea:
wget: http://manga.favorito /imagine http://manga.favorito/imagen1
Am încercat în felul următor, dar wget nu a obținut: http://manga.favorito/imagen{, 1..42} Potrivit meu, ar trebui să las prenumele fără număr și să continui cu numerotarea de la 1 la 42, dar nu a fost așa. De ce?
Ai dreptate, unele distribuții au sau au avut un .bin, dar este astfel încât toată lumea să poată înțelege și să vadă că este posibil să o faci în orice distribuție: D, Mulțumesc că ai trecut pe aici.
Foarte bine, foarte bine pentru aceste contribuții de cunoștințe la lumea Linux și securitatea acesteia, vineri, sper că aș putea citi cum să formatez un pendrive într-un terminal și să arăt o imagine ISO DVD / CD a oricărui sistem gratuit dintr-un terminal.
Mulțumesc pentru cuvintele tale frate 😀 Promit că vinerea viitoare voi face această postare. Și trebuie să vorbesc despre personalizarea Vim hahaha, dar nu am vrut să creadă că ar cuprinde doar Vim.
Excelent articol terminal, cel mai bun pe care l-am citit de mult timp, numărând mai multe bloguri care publică tutoriale de acest stil. Mulțumesc mult!!
Mulțumesc mult 😀 Voi încerca să țin pasul.
Sfat excelent al coșului de gunoi local!
Salutări!
Excelent, grozav că îți este de folos, îți mulțumesc foarte mult că ai trecut fratele 😀
Foarte bine! Nici o idee despre asta. Mulțumesc 🙂
Ești binevenit frate, mulțumesc pentru că ți-ai făcut timp să-l citești 😀
Am unele îngrijorări:
1. Cum îl fac să-mi acorde două intervale cu extindere prin puncte; vârste {1..24,55..90} și pentru a extinde vârstele de la 1 la 24 și a continua cu 55 la nouăzeci. așa cum am făcut, nu a funcționat. De ce?
2. Dacă vreau ca prima valoare să fie nulă și să continui cu numerotarea:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Am încercat în felul următor, dar wget nu a obținut: http://manga.favorito/imagen{, 1..42} Potrivit meu, ar trebui să las prenumele fără număr și să continui cu numerotarea de la 1 la 42, dar nu a fost așa. De ce?
* Ne pare rău, dar am pus primul post ca răspuns și a fost greșit în unele părți
1.- Logica ta este greșită trebuie să o cuibărești hahaha încearcă cu
$ echo {{1..24},{55..90}}
2.- La fel ca și precedentul ...
$ echo "URL"{,{1..42}}
Nu-ți face griji, frate, suntem aici pentru a ne ajuta 🙂
Pentru a înlocui for cu ecou, ar arăta astfel
ecou „Numărul meu” {1..5} $ '\ n' | | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
dar prefer printf
printf "I, I% d \ n" {1..5}
și utilizați același concept de expansiune cheie
Atte
jvk85321
Cum puneți terminalele ????
Atte
jvk85321
Testarea dacă eticheta de cod funcționează
hehe
Pentru a înlocui for cu ecou, ar arăta astfel
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}
și utilizați același concept de expansiune cheie
Atte
jvk85321
Am rămas cu niște bug-uri, dar a funcționat
Trăiesc maluco
Scuze de deranj
Atte
jvk85321
Hahaha ai răspuns singur, dar dacă este între etichete
fara spatii ...
Și la înlocuirea celor pentru nu este necesar să faceți atât de mult pipă hahahaha suficient cu:
echo -e "Mi numero "{1..5}"\n\b"
Pentru a fi sincer printf este cel mai bun mod de a imprima text în scripturi, este mai portabil, dar folosește în mod tradițional ecoul.
Iau spațiile! ha, ha, ha, ha, ha
să vedem acum 😀
La naiba este „mai puțin decât” cod ”mai mare decât„ „mai puțin decât” / cod ”mai mare decât„ hahahaha
Problema că echo -e nu este standard, deci nu funcționează pe toate sistemele.
Iese, de asemenea, dezordonat
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:~$
Și cu asta
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:~$
Cred că al doilea prezintă rezultatul mai bine, hahaha
Atte
jvk85321
Aceste etichete sunt o prostie, hehehe, să vedem dacă se rezolvă acum
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:~$
Și cu asta
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:~$
Cred că al doilea prezintă rezultatul mai bine, hahaha
Atte
jvk85321
Oricum, lasă spațiile dintre linii, de aceea urăsc html, hahahaha
Excelent! Vă bat din picioare haha
Nu știam că tastele pot fi imbricate, deoarece niciodată nu am încercat să le folosesc, într-adevăr economisește o mulțime de cod și, de asemenea, este mai ușor de citit în acest fel. Mulțumesc!
Vă mulțumesc că ați trecut frate, mă bucur că a fost utilă
Sunteți binevenit, pentru asta suntem aici, pentru a împărtăși și a contribui cu idei. Nu știu cum să programez, am făcut doar câteva lucruri în Bash și am publicat în două postări câteva scenarii pe care le-am făcut. Cred că știind acest lucru poate face codul mai ușor de înțeles.