V prvom rade by som sa chcel ospravedlniť, keďže minulý piatok som nemohol príspevok napísať, takže dnes pridám komparz, ktorý nahradí stratený deň. 🙂
Rozšírenie vzpery
V španielčine sa mi zdá rozšírenie kľúča funkciou inšpirovanou C škrupina, toto vygeneruje kombinácie medzi znakmi, ktoré sú vložené do zložených zátvoriek, poradie, ktoré používa, je zľava doprava. Nie je to nijako zložité, ale je to možnosť, ktorá bude veľmi užitočná pri našich prehliadkach GNU / Linux.
príklad:
$ echo a {1,2,3} a1 a2 a3
Pri použití s čiarkami (,) generuje kombinácie medzi hodnotou a a hodnotami vo zložených zátvorkách. Ak by mimo zložených zátvoriek neexistovala žiadna hodnota, zobrazila by sa iba raz každá hodnota, ktorú kľúč obsahuje.
$ echo {a, b, c} abc
Jeho použitie nie je vôbec zložité, existujú aj ďalšie bežnejšie príklady, ako napríklad vytvorenie mnohých adresárov v priečinku
$ mkdir ~ / Jobs / {one, two, three, four, five}
Takto sa v priečinku úloh vytvorí päť priečinkov, je to ako zadávať jeden príkaz naraz. Vytvára sa 5 adresárov.
Existuje rozšírenie o dva body .. takto sa vytvorí rad čísel alebo znakov, ktoré prechádzajú z počiatočnej hodnoty na konečnú hodnotu, nepoužívajte čísla s písmenami.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Myslím, že nikdy nedostanem zvyknutý na túto modrú farbu písmenom
Môžeme ušetriť čas vytvorením cyklu pre
# Namiesto písania $ for ((i = 1; i <= 5; i ++)); urobte echo "Moje číslo $ i"; hotovo Moje číslo 1 Moje číslo 2 Moje číslo 3 Moje číslo 4 Moje číslo 5 # Kód uložíme pomocou rozšírenia zátvoriek. $ za i v {1..5}; do echo "Moje číslo $ i; hotové Moje číslo 1 Moje číslo 2 Moje číslo 3 Moje číslo 4 Moje číslo 5 # Samozrejme je to platné, aj keď je výstup iný. $ echo" Moje číslo "{1..5} Moje číslo 1 Moje číslo 2 Moje číslo 3 Moje číslo 4 Moje číslo 5
Myslím si, že koncept je jasný, haha, teraz budem iba komentovať, že je kombinovateľný a vnorený. Čo tým chcem povedať?
Vďaka kombinovateľnosti môžeme spojiť jeden alebo viac kľúčov
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
S vnorením, ako by si mnohí predstavovali, môžete použiť rozširujúce kľúče v rámci rozširujúcich kľúčov
$ echo {a, c {1..3}, d} a c1 c2 c3 d
A nakoniec od Bash NIC je možné hodnoty zvýšiť.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
To je na dnes všetko, takže ďakujem, že ste ma čítali, ľudia 🙂
extra
Ako vytvoriť lokálny kôš
Keď poviem a popolnice local Myslím adresár, v ktorom máme vlastné skripty a je možné ich spustiť ako jednoduchý príkaz ...
Dosiahnutie tohto cieľa je pomerne ľahké, najskôr je potrebné vytvoriť adresár, do ktorého uložíme skripty.
mkdir ~ / .bin # V tomto príklade bude skrytý
Teraz máme náš priečinok na ukladanie skriptov, ale nebude to fungovať, kým nepridáme cestu nového .bin k $ PATH
Za týmto účelom je súbor upravený bash_profile, a riadok je pridaný.
export PATH = $ PATH: ~ / .bin
A voila, ktorá stačí na vytvorenie lokálneho koša, bude samozrejme vyžadovať oprávnenie root, ak je to potrebné, napríklad napíšeme rýchly skript.
#! / bin / bash echo „Ahoj $ 1, ako sa máš?“
Uložte ho s menom ahoj
Skriptu je udelené povolenie na vykonávanie a na volanie z terminálu bude stačiť
$ ahoj wada # Zobrazí sa správa Ahoj wada, ako sa máš?
Týmto rýchlym trikom teda môžete skripty spustiť rýchlejšie
To je pre dnešok všetko, čo sa má ľuďom dobre 🙂
PS Prepáčte za chyby, ak existujú, moje oči sa už zatvárajú hahaha 😀
Som v bashovom vydaní už dlho a nechápal som, aké sú tieto rozšírenia zátvoriek, vďaka.
Pokiaľ ide o cestu, Fedora štandardne robí niečo také, ale v priečinku „~ / .local / bin“ sa pozrite na úryvok z bash_profile, ktorý som priniesol Jessie.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
exportná CESTA
Mám určité obavy:
1. Ako ho prinútim, aby mi dal dva intervaly s rozšírením o body; vek {1..24,55..90} a že rozširujem vek z 1 na 24 a pokračujem s 55 na deväťdesiat. ako som to urobil nefungovalo. Prečo?
2. Ak chcem, aby bola prvá hodnota nulová, a pokračuj v číslovaní:
wget: http://manga.favorito / obrázok http://manga.favorito/imagen1
Skúsil som nasledujúci spôsob, ale wget sa nedostal: http://manga.favorito/imagen{, 1..42} Podľa mňa by som musel krstné meno nechať bez čísla a pokračovať v číslovaní od 1 do 42 ale nebolo to tak. Prečo?
Máte pravdu, že niektoré distribúcie majú alebo mali súbor .bin, ale je na každom, aby pochopil a videl, že je možné to urobiť v ktoromkoľvek distro: D, ďakujem, že ste sa zastavili.
Veľmi dobré veľmi dobré pre tieto príspevky znalostí do sveta linuxu a jeho bezpečnosti, nejaký piatok dúfam, že som si prečítal, ako naformátovať pendrive v termináli a napáliť iso DVD / CD obraz ľubovoľného voľného systému v termináli.
Ďakujem za tvoje slová brat brother Sľubujem, že budúci piatok urobím tento príspevok. A musím niečo o prispôsobení Vima hahaha, ale nechcel som, aby si mysleli, že by to zahŕňalo iba Vima.
Vynikajúci terminálny článok, to najlepšie, čo som už dlho čítal, počítam niekoľko blogov, ktoré vydávajú návody tohto štýlu. Mnohokrat dakujem!!
Ďakujem pekne 😀 budem sa snažiť držať krok.
Vynikajúci tip miestneho koša!
Zdravím!
Výborne, super, že je to pre vás užitočné, veľmi pekne vám ďakujeme, že ste odovzdali brata 😀
Veľmi dobre! O tomto ani len netuším. Dakujem 🙂
Ste vítaný brat, vďaka vám, že ste si našli čas a prečítali si ho 😀
Mám určité obavy:
1. Ako ho prinútim, aby mi dal dva intervaly s rozšírením o body; vek {1..24,55..90} a že rozširujem vek z 1 na 24 a pokračujem s 55 na deväťdesiat. ako som to urobil nefungovalo. Prečo?
2. Ak chcem, aby bola prvá hodnota nulová, a pokračuj v číslovaní:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Skúsil som nasledujúci spôsob, ale wget sa nedostal: http://manga.favorito/imagen{, 1..42} Podľa mňa by som musel krstné meno nechať bez čísla a pokračovať v číslovaní od 1 do 42 ale nebolo to tak. Prečo?
* Prepáčte, ale prvý príspevok som uviedol ako odpoveď a v niektorých častiach bol nesprávny
1.- Tvoja logika je nesprávna, musíš to vnoriť, hahaha skús to
$ echo {{1..24},{55..90}}
2.- Rovnaké ako predchádzajúce ...
$ echo "URL"{,{1..42}}
Nerobte si starosti, brat, sme tu, aby nám pomohli 🙂
Ak by sme nahradili for za echo, vyzeralo by to takto
echo "Moje číslo" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
ale ja mam radsej printf
printf "I, I% d \ n" {1..5}
a používať rovnaký koncept kľúčovej expanzie
Atte
jvk85321
Ako umiestnite svorkovnice ????
Atte
jvk85321
Testuje sa, či kódová značka funguje
hehe
Ak by sme nahradili for za echo, vyzeralo by to takto
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}
a používať rovnaký koncept kľúčovej expanzie
Atte
jvk85321
Ostali mi nejaké chyby, ale fungovalo to
Som nažive maluco
Prepáč za obťažovanie
Atte
jvk85321
Hahaha, odpovedali ste si sami, ale ak je medzi štítkami
bez medzier ...
A pri zámene za nie je potrebné robiť toľko potrubia hahahaha dosť s:
echo -e "Mi numero "{1..5}"\n\b"
Aby som bol úprimný, printf je najlepší spôsob, ako tlačiť text v skriptoch, je prenosnejší, ale tradične používa ozvenu.
Beriem medzery! hahahahaha
pozrime sa teraz 😀
Seru na to, že je „menší ako“ kód, väčší ako „„ menší ako “/ kód, väčší ako„ hahahaha
Problém, ktorý echo -e nie je štandardný, takže nefunguje na všetkých systémoch.
Tiež vychádza chaotický
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:~$
A s týmto
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:~$
Myslím, že druhá prezentuje výsledok lepšie, hahaha
Atte
jvk85321
Tieto štítky sú nepríjemné, hehehe, uvidíme, či to teraz vyjde
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:~$
A s týmto
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:~$
Myslím, že druhá prezentuje výsledok lepšie, hahaha
Atte
jvk85321
Každopádne nechajte medzery medzi riadkami, preto nenávidím html, hahahaha
Vynikajúci! Tlieskam ti nohy haha
Nevedel som, že sa dajú kľúče vnoriť, keďže som sa ich nikdy ani nepokúšal použiť, skutočne to ušetrí veľa kódu a je to takto aj čitateľnejšie. Ďakujem!
Ďakujem za to, že si sa stal bratom, som rád, že to bolo užitočné
Ste vítaní, na to sme tu, aby sme zdieľali a prispievali k nápadom. Neviem programovať, iba som urobil pár vecí v Bashi a nejaké skripty, ktoré som urobil, som zverejnil v dvoch príspevkoch. Myslím si, že ak to budem vedieť, bude to ľahšie pochopiteľné.