Nejprve bych se chtěl omluvit, protože minulý pátek jsem nemohl napsat příspěvek, takže dnes přidám další, abych nahradil ztracený den. 🙂
Expanze výztuhy
Ve španělštině se mi klíčová expanze zdá být funkcí inspirovanou c-shell, tím se vytvoří kombinace mezi znaky, které se zadávají do složených závorek, pořadí, které používá, je zleva doprava. Není to vůbec složité, ale je to možnost, která bude velmi užitečná při našich prohlídkách GNU / Linuxu.
příklad:
$ echo a {1,2,3} a1 a2 a3
Při použití s čárkami (,) generuje kombinace mezi hodnotou a a hodnotami uvnitř složených závorek. Pokud by mimo klíče nebyla žádná hodnota, zobrazila by se pouze jednou každá hodnota, kterou klíč obsahuje.
$ echo {a, b, c} abc
Jeho použití není vůbec složité, existují i další běžnější příklady, jako je vytváření mnoha adresářů ve složce
$ mkdir ~ / Jobs / {one, two, three, four, five}
Tím se vytvoří pět složek ve složce úloh, je to jako zadávat jeden příkaz najednou. Vytváření 5 adresářů.
Existují expanze o dva body .. Tím se vytvoří řada čísel nebo znaků, které přecházejí z počáteční hodnoty na konečnou hodnotu, nepoužívejte čísla s písmeny.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Myslím, že nikdy nedostanu zvyklý na tuto modrou barvu písmenem
Můžeme ušetřit čas vytvořením cyklu for
# Místo psaní $ for ((i = 1; i <= 5; i ++)); do echo "Moje číslo $ i"; hotovo Moje číslo 1 Moje číslo 2 Moje číslo 3 Moje číslo 4 Moje číslo 5 # Uložit kód pomocí rozšíření rovnátka. $ 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 # Samozřejmě je platné použít, i když je výstup jiný. $ echo" Moje číslo "{1..5} Moje číslo 1 Moje číslo 2 Moje číslo 3 Moje číslo 4 Moje číslo 5
No, myslím, že koncept je jasný, haha, teď jen poznamenám, že je kombinovatelný a vnořený. Co tím myslím?
Díky kombinovatelnosti můžeme spojit jeden nebo více klíčů
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
S vnořením, jak by si mnozí představovali, můžete použít rozšiřující klíče uvnitř rozšiřujících klíčů
$ echo {a, c {1..3}, d} a c1 c2 c3 d
A nakonec od Bash NIC je možné hodnoty zvýšit.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
To je pro dnešek vše, takže děkuji, že jste mi četli, lidi 🙂
extra
Jak vytvořit místní přihrádku
Když řeknu a popelnice local Mám na mysli adresář, ve kterém máme vlastní skripty a je možné je spustit jako jednoduchý příkaz ...
Dosažení tohoto cíle je relativně snadné, první věcí, kterou musíte udělat, je vytvořit adresář, do kterého budeme skripty ukládat.
mkdir ~ / .bin # V tomto příkladu bude skrytý
Nyní máme naši složku pro ukládání skriptů, ale nebude to fungovat, dokud nepřidáme cestu nového .bin do $ PATH
Za tímto účelem je soubor upraven bash_profilea řádek je přidán.
export PATH = $ PATH: ~ / .bin
A voila, která je dostatečná k vytvoření lokálního koše, bude samozřejmě vyžadovat oprávnění root, pokud je to nutné, například napíšeme rychlý skript.
#! / bin / bash echo „Ahoj $ 1, jak se máš?“
Uložte jej pod jménem ahoj
Skriptu bylo uděleno oprávnění ke spuštění a k jeho zavolání z terminálu bude stačit
$ ahoj wada # Zobrazí se zpráva Hello wada, how are you?
S tímto rychlým trikem tedy můžete spouštět skripty rychleji
To je pro dnešní lidi vše, co je v pořádku 🙂
PS Omlouvám se za chyby, pokud existují, moje oči se už zavírají hahaha 😀
Byl jsem v bash vydání po dlouhou dobu a já jsem nepochopil rozšíření výztuhy, díky.
Pokud jde o trik s cestami, Fedora ve výchozím nastavení něco takového dělá, ale v souboru „~ / .local / bin“ se podívejte na úryvek bash_profile, který jsem přinesl Jessie.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
exportovat PATH
Mám určité obavy:
1. Jak ho přimím, aby mi dal dva intervaly s rozšířením o body; věkové skupiny {1..24,55..90} a rozšířit věkové skupiny z 1 na 24 a pokračovat s 55 na devadesát. jak jsem to udělal, nefungovalo to. Proč?
2. Pokud chci, aby první hodnota byla nulová, a pokračuj v číslování:
wget: http://manga.favorito /obraz http://manga.favorito/imagen1
Zkoušel jsem následující způsob, ale wget nedostal: http://manga.favorito/imagen{, 1..42} Podle mě bych musel nechat křestní jméno bez čísla a pokračovat v číslování od 1 do 42, ale nebylo to tak. Proč?
Máte pravdu, že některá distribuce mají nebo měla .bin, ale je to tak, aby každý pochopil a viděl, že je možné to udělat v jakékoli distribuci: D, děkuji, že jste se zastavili.
Velmi dobré velmi dobré pro tyto příspěvky znalostí do linuxového světa a jeho bezpečnosti, někdy v pátek doufám, že jsem si mohl přečíst, jak naformátovat pendrive v terminálu a vypálit iso obraz DVD / CD libovolného volného systému v terminálu.
Děkuji za vaše slova, bratře 😀 slibuji, že příští pátek provedu tento příspěvek. A musím něco o přizpůsobení Vima hahaha, ale nechtěl jsem, aby si mysleli, že to bude zahrnovat pouze Vima.
Vynikající článek o terminálu, to nejlepší, co jsem za dlouhou dobu četl, počítám několik blogů, které publikují návody tohoto stylu. Díky moc!!
Děkuji moc 😀 Pokusím se držet krok.
Vynikající tip místního koše!
Zdravím!
Skvělé, skvělé, že je to pro vás užitečné, děkuji vám za předání bratra 😀
Velmi dobře! O tom vůbec netuším. Díky 🙂
Jste vítaný bratře, děkuji, že jste si našli čas a přečetli si jej 😀
Mám určité obavy:
1. Jak ho přimím, aby mi dal dva intervaly s rozšířením o body; věkové skupiny {1..24,55..90} a rozšířit věkové skupiny z 1 na 24 a pokračovat s 55 na devadesát. jak jsem to udělal, nefungovalo to. Proč?
2. Pokud chci, aby první hodnota byla nulová, a pokračuj v číslování:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Zkoušel jsem následující způsob, ale wget nedostal: http://manga.favorito/imagen{, 1..42} Podle mě bych musel nechat křestní jméno bez čísla a pokračovat v číslování od 1 do 42, ale nebylo to tak. Proč?
* Je mi líto, ale dal jsem první příspěvek jako odpověď a v některých částech byl špatný
1.- Vaše logika je špatná, musíte to vnořit, hahaha, zkuste to
$ echo {{1..24},{55..90}}
2. - Stejné jako předchozí ...
$ echo "URL"{,{1..42}}
Nebojte se, bratře, jsme tu, abychom nám pomohli 🙂
Chcete-li nahradit for s echo, vypadalo 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 já dávám přednost printf
printf "I, I% d \ n" {1..5}
a použít stejný koncept klíčové expanze
Atte
jvk85321
Jak umístíte svorkovnice ????
Atte
jvk85321
Testování, zda značka kódu funguje
hehe
Chcete-li nahradit for s echo, vypadalo 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žít stejný koncept klíčové expanze
Atte
jvk85321
Zůstaly mi nějaké chyby, ale fungovalo to
Žiju maluco
Promiň že obtěžuji
Atte
jvk85321
Hahaha, odpověděl jsi si sám, ale jestli je to mezi štítky
žádné mezery ...
A při nahrazování za není nutné dělat tolik potrubí hahahaha dost s:
echo -e "Mi numero "{1..5}"\n\b"
Abych byl upřímný, printf je nejlepší způsob, jak tisknout text ve skriptech, je přenosnější, ale tradičně používá echo.
Beru mezery! hahahahaha
uvidíme hned 😀
Seru na to, že je „méně než“ kód „větší než„ „méně než“ / kód „větší než„ hahahaha
Problém, že echo -e není standardní, takže nefunguje na všech systémech.
Také vyjde 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ím
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ý představuje výsledek lépe, hahaha
Atte
jvk85321
Tyto štítky jsou bummer, hehehe, podívejme se, jestli nyní fungují
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ím
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ý představuje výsledek lépe, hahaha
Atte
jvk85321
Každopádně nechte mezery mezi řádky, proto nenávidím html, hahahaha
Vynikající! Tleskám ti nohy haha
Nevěděl jsem, že klíče mohou být vnořeny, protože jsem se nikdy nepokusil je použít, opravdu to ušetří spoustu kódu a je to také čitelnější. Děkuji!
Děkuji, že jste předali bratra, jsem rád, že to bylo užitečné
Jste vítáni, proto jsme tu proto, abychom mohli sdílet a přispívat nápady. Nevím, jak programovat, jen jsem udělal pár věcí v Bash a publikoval jsem ve dvou příspěvcích několik skriptů, které jsem udělal. Myslím, že když to víme, může to usnadnit pochopení kódu.