Prije svega, želio bih se ispričati, jer prošli petak nisam mogao napisati post, pa ću danas dodati dodatak da nadoknadim izgubljeni dan. 🙂
Proširenje aparatića
Na španjolskom jeziku čini mi se da je proširenje ključa funkcija inspirirana C Školjka, ovo generira kombinacije između znakova koji se unose unutar zagrada, redoslijed koji koristi je slijeva udesno. Nije uopće komplicirano, ali to je opcija koja će biti vrlo korisna u našim obilascima GNU / Linuxa.
primjer:
$ echo a {1,2,3} a1 a2 a3
Kad se koristi sa zarezima (,) generira kombinacije između vrijednosti a i vrijednosti unutar zagrada. Da nema vrijednosti izvan ključeva, prikazala bi se samo jednom svaka vrijednost koju ključ sadrži.
$ echo {a, b, c} abc
Njegova uporaba uopće nije složena, postoje i drugi češći primjeri poput stvaranja mnogih direktorija u mapi
$ mkdir ~ / Jobs / {jedan, dva, tri, četiri, pet}
Ovo stvara pet mapa unutar mape poslova, to je poput unosa jedne naredbe odjednom. Izrada 5 direktorija.
Postoje dva proširenja .. Ovo stvara niz brojeva ili znakova koji idu od početne vrijednosti do konačne vrijednosti, ne koristite brojeve slovima.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Mislim da nikada neću dobiti navikao na ovu plavu boju u pismu
Stvaranjem ciklusa možemo uštedjeti vrijeme za
# Umjesto pisanja $ for ((i = 1; i <= 5; i ++)); učiniti odjek "Moj broj $ i"; gotovo Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5 # Spremi kôd pomoću proširenja zagrade. $ za i za {1..5}; do echo "Moj broj $ i; gotovo Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5 #Naravno da je valjano koristiti iako su izlazi različiti. $ echo" Moj broj "{1..5} Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5
Pa mislim da je koncept jasan, haha, sad ću samo komentirati da je kombiniran i ugniježđen.
Uz kombinirano da možemo pridružiti jedan ili više ključeva
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
S gniježđenjem, kako bi mnogi zamislili, možete koristiti ključeve za proširenje unutar ključeva za proširenje
$ echo {a, c {1..3}, d} a c1 c2 c3 d
I konačno od Bash Ništa moguće je povećati vrijednosti.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Ovo je sve za danas, pa hvala što ste mi pročitali ljude 🙂
dodatni
Kako stvoriti lokalnu kantu
Kad kažem a kanta local mislim na direktorij u kojem imamo vlastite skripte i moguće ih je izvršiti kao jednostavnu naredbu ...
To je relativno lako postići, prvo što morate učiniti je stvoriti direktorij u koji ćemo spremiti skripte.
mkdir ~ / .bin # U ovom će primjeru biti skriven
Sada imamo svoju mapu za spremanje skripti, ali neće raditi dok ne dodamo put novog .bin u $ PATH
Zbog toga se datoteka uređuje bash_profil, i dodaje se redak.
izvoz PUT = $ PUT: ~ / .bin
A voila je to dovoljno za stvaranje lokalne kante, naravno da će tražiti root dozvole ako je potrebno, za primjer napišemo brzu skriptu.
#! / bin / bash echo "Bok $ 1, kako si?"
Spremite ga s imenom bok
Skripti se daje odobrenje za izvršavanje i bit će dovoljno samo da je pozove s terminala
$ hello wada # Ovo će prikazati poruku Hello wada, kako si?
Tako ovim brzim trikom možete brže pokretati svoje skripte
To je sve za današnje ljude koji su dobro 🙂
PS Oprostite na greškama, ako postoje, oči mi se već zatvaraju hahaha 😀
Dugo sam u izdanju basha i nisam razumio ovo proširenje aparatića, hvala.
Na triku s putovima, Fedora prema zadanim postavkama čini nešto slično, ali u "~ / .local / bin" pogledajte isječak iz bash_profile koji sam donio Jessie.
PUT = $ PATH: $ HOME / .local / bin: $ HOME / bin
izvoz PUT
Imam nekih nedoumica:
1. Kako da ga natjeram da mi da dva intervala s proširenjem po točkama; dobi {1..24,55..90} i da proširim dob s 1 na 24 i nastavim s 55 na XNUMX. kao što sam učinio nije uspjelo. Zašto?
2. Ako želim da prva vrijednost bude nula i nastavim s numeriranjem:
wget: http://manga.favorito /slika http://manga.favorito/imagen1
Pokušao sam na sljedeći način, ali wget nije dobio: http://manga.favorito/imagen{, 1..42} Po meni bih prvo ime morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?
U pravu ste da neke distro distribucije imaju ili imaju .bin, ali to je tako da svi mogu razumjeti i vidjeti da je to moguće učiniti u bilo kojoj distro distribuciji: D, hvala što ste navratili.
Vrlo dobro, vrlo dobro za ovaj doprinos znanja svijetu linuxa i njegovoj sigurnosti, nadam se da bih mogao u petak pročitati kako formatirati klatno u terminalu i snimiti iso DVD / CD sliku bilo kojeg slobodnog sustava na terminalu.
Hvala na tvojim riječima brate 😀 Obećavam da ću sljedeći petak obaviti taj post. Moram reći i o prilagođavanju Vima, hahaha, ali nisam želio da misle da će to obuhvaćati samo Vima.
Izvrstan članak o terminalu, najbolji koji sam već dugo pročitao, računajući nekoliko blogova koji objavljuju tutorijale ovog stila. Hvala vam puno!!
Puno vam hvala 😀 Pokušat ću ići u korak.
Izvrsni savjet lokalne kante!
Pozdrav!
Izvrsno, sjajno što vam je korisno, puno vam hvala što ste prošli brata 😀
Vrlo dobro! Nemam pojma o ovome. Hvala 🙂
Nema na čemu, brate, hvala ti što si odvojio vrijeme za čitanje 😀
Imam nekih nedoumica:
1. Kako da ga natjeram da mi da dva intervala s proširenjem po točkama; dobi {1..24,55..90} i da proširim dob s 1 na 24 i nastavim s 55 na XNUMX. kao što sam učinio nije uspjelo. Zašto?
2. Ako želim da prva vrijednost bude nula i nastavim s numeriranjem:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Pokušao sam na sljedeći način, ali wget nije dobio: http://manga.favorito/imagen{, 1..42} Po meni bih prvo ime morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?
* Oprostite, ali prvi sam odgovor stavio kao odgovor i u nekim je dijelovima bio pogrešan
1.- Vaša je logika pogrešna, morate je ugnijezditi hahaha pokušajte
$ echo {{1..24},{55..90}}
2.- Isto kao i prethodni ...
$ echo "URL"{,{1..42}}
Ne brini, brate, ovdje smo da nam pomognemo 🙂
Zamjena for-a ehom izgledala bi ovako
odjek "Moj broj" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
ali više volim printf
printf "Ja, Ja% d \ n" {1..5}
i koristiti isti koncept proširenja ključa
atte
jvk85321
Kako se stavljaju priključne kutije ????
atte
jvk85321
Testiranje funkcionira li oznaka koda
hehe
Zamjena for-a ehom izgledala bi ovako
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 koristiti isti koncept proširenja ključa
atte
jvk85321
Preostale su mi neke bube, ali uspjelo je
Živa sam maluco
Oprosti na smetnji
atte
jvk85321
Hahaha i sami ste odgovorili ali ako je između etiketa
bez razmaka ...
A na zamjeni for nije potrebno napraviti toliko cijevi hahahaha dovoljno sa:
echo -e "Mi numero "{1..5}"\n\b"
Iskreno govoreći, printf je najbolji način ispisa teksta u skriptama, prenosiviji je, ali tradicionalno koristi odjek.
Uzimam prostore! hahahahaha
da vidimo sada 😀
Jebote, to je "manje od" koda "veće od" "manje od" / koda "veće od" hahahaha
Problem što echo -e nije standardan, pa ne radi na svim sustavima.
Također izlazi neuredno
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 s ovim
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 druga bolje predstavlja rezultat, hahaha
atte
jvk85321
Te su naljepnice gadno, hehehe, da vidimo hoće li sad uspjeti
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 s ovim
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 druga bolje predstavlja rezultat, hahaha
atte
jvk85321
U svakom slučaju, ostavite razmake između redova, zato mrzim html, hahahaha
Izvrsno! Plješćem nogama haha
Nisam znao da se ključevi mogu ugnijezditi, jer ih nikada nisam ni pokušao koristiti, to stvarno štedi puno koda, a i čitljivije je na ovaj način. Hvala vam!
Zahvaljujem ti što si prošao brat, drago mi je što je bilo korisno utilidad
Nema na čemu, zato smo ovdje da dijelimo i doprinosimo idejama. Ne znam kako programirati, samo sam učinio nekoliko stvari u Bashu i u dva posta objavio neke skripte koje sam radio. Mislim da to može učiniti kôd lakšim za razumijevanje.