A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
oktatas:linux:shell_programozas [2020/02/14 09:45] admin [String darabolása] |
oktatas:linux:shell_programozas [2023/08/20 23:06] (aktuális) admin [Shell programozás] |
||
---|---|---|---|
Sor 4: | Sor 4: | ||
* **Szerző:** Sallai András | * **Szerző:** Sallai András | ||
- | * Copyright (c) Sallai András, 2011-2013, 2016-2020 | + | * Copyright (c) 2011, Sallai András |
- | * Licenc: GNU Free Documentation License 1.3 | + | * Szerkesztve: 2011-2021 |
- | * Web: http://szit.hu | + | * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] |
+ | * Web: https://szit.hu | ||
===== Bevezetés ===== | ===== Bevezetés ===== | ||
Sor 126: | Sor 127: | ||
# egy soros megjegyzés | # egy soros megjegyzés | ||
- | :' | + | : ' |
Több | Több | ||
soros | soros | ||
Sor 133: | Sor 134: | ||
</code> | </code> | ||
+ | A (:) kettőspont után szóköz szükséges. | ||
===== Kivitel ===== | ===== Kivitel ===== | ||
Sor 164: | Sor 166: | ||
Utóbbi utasítás a -n hatására nem ír a sorvégére sortörést. | Utóbbi utasítás a -n hatására nem ír a sorvégére sortörést. | ||
+ | |||
+ | ===== Escape szekvenciák ===== | ||
Sor 181: | Sor 185: | ||
* \v függőleges tabulátor | * \v függőleges tabulátor | ||
* <nowiki>\\</nowiki> backslash | * <nowiki>\\</nowiki> backslash | ||
- | * \nnn a karakter ASCII kódja nnn (oktálisan) | + | * \0nnn a karakter ASCII kódja nnn (oktálisan) |
+ | * \xnnn a karakter ASCII kódja nnn (hexadecimálisan) | ||
Az escape karakter a normál karakter egy speciális értelmezése. Az "a" például csengőhang, az "n" sortörés. Azt, hogy speciális escape értelmezés következik egy "\" visszaperjel karakterrel mondjuk meg. A következő parancs például a "Helló" és a "Világ!" szöveget külön sorba írja: | Az escape karakter a normál karakter egy speciális értelmezése. Az "a" például csengőhang, az "n" sortörés. Azt, hogy speciális escape értelmezés következik egy "\" visszaperjel karakterrel mondjuk meg. A következő parancs például a "Helló" és a "Világ!" szöveget külön sorba írja: | ||
Sor 188: | Sor 193: | ||
echo -e "Helló\nVilág!" | echo -e "Helló\nVilág!" | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | <note tip> | ||
+ | LXTerminalban: Szerkesztés > Beállítások > Stílus > Hallható csengőhang [✔] | ||
+ | </note> | ||
+ | ===== Változók és az értékadás ===== | ||
+ | A változók kis és nagybetű érzékenyek. A SZAM és a szam változó két különböző változó. | ||
+ | Az átláthatóság érdekében a változóneveket nagybetűvel szokás írni. | ||
+ | |||
+ | <code bash> | ||
+ | SZAM=3 | ||
+ | SZOVEG="alma" | ||
+ | echo $SZAM | ||
+ | echo $SZOVEG | ||
+ | </code> | ||
+ | |||
+ | Az értékadó operátor előtt és után nem hagyhatunk whitespace karaktert, mert akkor a SZAM vagy SZOVEG | ||
+ | változót egy parancsnak venné. | ||
+ | |||
+ | |||
+ | ===== Változó deklaráció ===== | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | declare -i szam | ||
+ | szam=4 | ||
+ | szam=szam+1 | ||
+ | szam+=1 | ||
+ | echo $szam | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | declare -i szam=4 | ||
+ | szam=szam+1 | ||
+ | szam+=1 | ||
+ | echo $szam | ||
+ | </code> | ||
+ | |||
Sor 197: | Sor 244: | ||
<code bash> | <code bash> | ||
printf "%s\n" $HOME | printf "%s\n" $HOME | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | printf "%s\n" alma | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | printf "%d\n" 35 | ||
+ | </code> | ||
+ | |||
+ | Szélesség megadása: | ||
+ | <code bash> | ||
+ | printf "%10d\n" 35 | ||
+ | </code> | ||
+ | |||
+ | Vezető nullák: | ||
+ | <code bash> | ||
+ | printf "%0d\n" 35 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | printf "%f\n" 35,12345 | ||
+ | </code> | ||
+ | |||
+ | Tizedesjegyek megadása: | ||
+ | <code bash> | ||
+ | printf "%.2f\n" 35,12345 | ||
+ | </code> | ||
+ | |||
+ | Egyszerre több: | ||
+ | <code bash> | ||
+ | printf "%010.2f\n" 35,12345 | ||
</code> | </code> | ||
Sor 214: | Sor 295: | ||
A "U" nagy u helyett használhatunk "u" kis u-t is. | A "U" nagy u helyett használhatunk "u" kis u-t is. | ||
+ | Leghosszabb kiírható számjegy: 1234567890123456789 | ||
+ | |||
+ | ^ Formátumkód ^ Leírás ^ | ||
+ | | d | Egész szám kiíratás | | ||
+ | | f | Valós szám kiíratás | | ||
+ | | s | String kiíratás | | ||
+ | |||
+ | ^ Jelző ^ Leírás ^ | ||
+ | | 0 | vezető nullák | | ||
+ | | - | balra igazítás | | ||
+ | | + | előjel | | ||
===== Véletlen generálás ===== | ===== Véletlen generálás ===== | ||
==== Véletlen szám ==== | ==== Véletlen szám ==== | ||
Sor 230: | Sor 322: | ||
1 és 3 között egy szám: | 1 és 3 között egy szám: | ||
<code bash> | <code bash> | ||
- | echo $(((RANDOM % 3)+1)) | + | echo $((RANDOM % 3 + 1)) |
</code> | </code> | ||
- | De lehet így is: | ||
- | <code bash> | ||
- | echo $((1 + RANDOM % 3)) | ||
- | </code> | ||
Sor 280: | Sor 368: | ||
- | ===== Bevitel ===== | ||
- | Ebben a részben megnézzük, hogyan kérhetünk be a billentyűzetről értékeket. | + | |
+ | |||
+ | ===== Kifejezés kiértékelése ===== | ||
<code bash> | <code bash> | ||
- | echo -n "Szó: " | + | expr 1 + 3 |
- | read SZOVEG | + | |
</code> | </code> | ||
+ | Az 1+3 összegét, azaz 4-et ad vissza | ||
- | Egy szöveg bekérése a SZOVEG változóba. A bekérést a read utasítás végzi. Az előtte lévő echo utasítás jelzi a "Szó: " képernyőre való írásával, hogy egy szó begépelését várjuk. Az echo -n kapcsolója a "Szó: " szöveg után nem ír sortörést. Így a bekérés rögtön a kettőspont-szóköz után lehetséges. | ||
- | Bekérés echo nélkül: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | read -p "Felhasználónév: " USER | + | A=3 |
+ | B=7 | ||
+ | expr $A + $B | ||
+ | </code> | ||
- | echo "A felhasználónév: "$USER | + | |
+ | <code bash script.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | A=3 | ||
+ | B=7 | ||
+ | C=`expr $A + $B` | ||
+ | echo $C | ||
</code> | </code> | ||
- | A bekérés szövegét echo nélkül is kitudjuk íratni a read -p kapcsolója segítségével. | ||
+ | <code bash script.sh> | ||
+ | #!/bin/bash | ||
+ | A=3 | ||
+ | B=7 | ||
+ | C=`expr $A "*" $B` | ||
+ | echo $C | ||
+ | </code> | ||
- | Beolvasás tömbbe: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | echo -n "Gyümülcsök: " | + | A=3 |
+ | B=7 | ||
+ | C=`expr \( $A "*" $B \) / 2 ` | ||
+ | echo $C | ||
+ | </code> | ||
- | read -a GYUMOLCSOK | ||
- | echo ${GYUMOLCSOK[0]} | ||
- | echo ${GYUMOLCSOK[1]} | ||
+ | <code bash script.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | A=3 | ||
+ | B=7 | ||
+ | C=`echo \( $A "*" $B \) / 2 | bc` | ||
+ | echo $C | ||
</code> | </code> | ||
- | A read utasítás a -a kapcsoló hatására indexelt tömbváltozót hoz létre. Lásd "help read". | ||
- | A beolvasandó értékeket szóközzel tagolva adjuk meg. Például: | + | Gyökvonás: |
- | <code> | + | <code bash script.sh> |
- | Gyümölcsök: körte alma barack szilva | + | #!/bin/bash |
+ | |||
+ | echo sqrt\(9\) | bc | ||
</code> | </code> | ||
- | Jelszó beolvasása: | + | Hatványozás: |
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | echo -n "Jelszó: " | + | echo 2 ^ 8 | bc |
- | read -s JELSZO | + | |
- | + | ||
- | echo | + | |
- | echo "A beírt jelszó: " $JELSZO | + | |
</code> | </code> | ||
+ | ==== Dupla zárójel ==== | ||
- | <code bash script.sh> | + | A következő program a szam változó értéket 1-gyel növeli: |
+ | <code bash szamol.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | read -p "Jelszó: " -s JELSZO | + | szam=3 |
+ | szam=$((szam+1)) | ||
+ | |||
+ | echo $szam | ||
+ | </code> | ||
- | echo | ||
- | echo "A beírt jelszó: " $JELSZO | ||
+ | Variációkat láthatunk a növelésre: | ||
+ | <code> | ||
+ | szam=$((szam+1)) | ||
+ | ((szam=szam+1)) | ||
+ | ((szam+=1)) | ||
+ | ((szam++)) | ||
</code> | </code> | ||
+ | ==== A let kulcsszó használata ==== | ||
- | Alapértelmezett szöveg megadása: | + | <code bash> |
- | <code bash script.sh> | + | |
#!/bin/bash | #!/bin/bash | ||
- | read -e -i "joska" -p "Felhasználónév: " USER | + | szam=3 |
- | + | let "szam=szam+1" | |
- | echo "A beírt felhasználónév: "$USER | + | echo $szam |
+ | </code> | ||
+ | Variációk a let kulcsszó használatára: | ||
+ | <code bash> | ||
+ | let "szam=szam+1" | ||
+ | let "szam+=1" | ||
+ | let "szam++" | ||
+ | let szam=szam+1 | ||
+ | let szam+=1 | ||
+ | let szam++ | ||
</code> | </code> | ||
- | A "-e" kapcsoló is szükséges. | ||
+ | ==== A bc ==== | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
- | ===== Változók és az értékadás ===== | + | declare -i szam=4 |
- | A változók kis és nagybetű érzékenyek. A SZAM és a szam változó két különböző változó. | + | bc <<< "$szam+2" |
- | Az átláthatóság érdekében a változóneveket nagybetűvel szokás írni. | + | |
- | <code bash> | ||
- | SZAM=3 | ||
- | SZOVEG="alma" | ||
- | echo $SZAM | ||
- | echo $SZOVEG | ||
</code> | </code> | ||
- | Az értékadó operátor előtt és után nem hagyhatunk whitespace karaktert, mert akkor a SZAM vagy SZOVEG | + | <code bash> |
- | változót egy parancsnak venné. | + | #!/bin/bash |
+ | declare -i szam=4 | ||
+ | echo "$szam+2" | bc | ||
- | ===== Kifejezés kiértékelése ===== | + | </code> |
+ | |||
+ | ===== Bevitel ===== | ||
+ | Ebben a részben megnézzük, hogyan kérhetünk be a billentyűzetről értékeket. | ||
<code bash> | <code bash> | ||
- | expr 1 + 3 | + | echo -n "Szó: " |
+ | read SZOVEG | ||
</code> | </code> | ||
- | Az 1+3 összegét, azaz 4-et ad vissza | ||
+ | Egy szöveg bekérése a SZOVEG változóba. A bekérést a read utasítás végzi. Az előtte lévő echo utasítás jelzi a "Szó: " képernyőre való írásával, hogy egy szó begépelését várjuk. Az echo -n kapcsolója a "Szó: " szöveg után nem ír sortörést. Így a bekérés rögtön a kettőspont-szóköz után lehetséges. | ||
+ | Bekérés echo nélkül: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | A=3 | + | read -p "Felhasználónév: " USER |
- | B=7 | + | |
- | expr $A + $B | + | echo "A felhasználónév: "$USER |
</code> | </code> | ||
+ | A bekérés szövegét echo nélkül is kitudjuk íratni a read -p kapcsolója segítségével. | ||
- | <code bash script.sh> | ||
- | #!/bin/bash | ||
- | A=3 | ||
- | B=7 | ||
- | C=`expr $A + $B` | ||
- | echo $C | ||
- | </code> | ||
+ | |||
+ | Beolvasás tömbbe: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | A=3 | + | echo -n "Gyümülcsök: " |
- | B=7 | + | |
- | C=`expr $A "*" $B` | + | |
- | echo $C | + | |
- | </code> | + | |
+ | read -a GYUMOLCSOK | ||
+ | echo ${GYUMOLCSOK[0]} | ||
+ | echo ${GYUMOLCSOK[1]} | ||
- | <code bash script.sh> | + | </code> |
- | #!/bin/bash | + | |
- | A=3 | + | A read utasítás a -a kapcsoló hatására indexelt tömbváltozót hoz létre. Lásd "help read". |
- | B=7 | + | |
- | C=`expr \( $A "*" $B \) / 2 ` | + | A beolvasandó értékeket szóközzel tagolva adjuk meg. Például: |
- | echo $C | + | <code> |
+ | Gyümölcsök: körte alma barack szilva | ||
</code> | </code> | ||
+ | Jelszó beolvasása: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | A=3 | + | echo -n "Jelszó: " |
- | B=7 | + | read -s JELSZO |
- | C=`echo \( $A "*" $B \) / 2 | bc` | + | |
- | echo $C | + | echo |
+ | echo "A beírt jelszó: " $JELSZO | ||
</code> | </code> | ||
- | Gyökvonás: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | echo sqrt\(9\) | bc | + | read -p "Jelszó: " -s JELSZO |
- | </code> | + | |
+ | echo | ||
+ | echo "A beírt jelszó: " $JELSZO | ||
+ | </code> | ||
- | Hatványozás: | + | |
+ | Alapértelmezett szöveg megadása: | ||
<code bash script.sh> | <code bash script.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | echo 2 ^ 8 | bc | + | read -e -i "joska" -p "Felhasználónév: " USER |
- | </code> | + | |
- | + | ||
+ | echo "A beírt felhasználónév: "$USER | ||
+ | </code> | ||
+ | A "-e" kapcsoló is szükséges. | ||
Sor 553: | Sor 682: | ||
- | |||
- | ==== And operátor ==== | ||
- | |||
- | Egyszerre nem csak egy, hanem több feltételt is meg szeretnénk vizsgálni. | ||
- | |||
- | <code bash> | ||
- | if [[ $num -eq 3 && "$str" == foo ]] | ||
- | then | ||
- | |||
- | # Utasítások | ||
- | fi | ||
- | </code> | ||
Sor 617: | Sor 734: | ||
==== És, vagy logikai operátorok ==== | ==== És, vagy logikai operátorok ==== | ||
+ | |||
+ | Több feltétel is megadható, ha megduplázzuk a szögletes | ||
+ | zárójeleket: | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | if [[ $num -eq 3 && "$str" == foo ]] | ||
+ | then | ||
+ | |||
+ | # Utasítások | ||
+ | fi | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
Vagy: | Vagy: | ||
Sor 799: | Sor 931: | ||
#!/bin/bash | #!/bin/bash | ||
- | for (( n=0; n<10; n++ )) | + | for (( i=0; i<10; i++ )) |
do | do | ||
echo "Helló" | echo "Helló" | ||
Sor 808: | Sor 940: | ||
#!/bin/bash | #!/bin/bash | ||
- | for (( n=0; n<10; n++ )) | + | for (( i=0; i<10; i++ )) |
do | do | ||
- | echo $n | + | echo $i |
done | done | ||
Sor 957: | Sor 1089: | ||
===== Tömbök ===== | ===== Tömbök ===== | ||
+ | Üres tömb: | ||
+ | <code bash> | ||
+ | tomb=() | ||
+ | </code> | ||
+ | Kezdőértéket zárójelek között adhatunk: | ||
<code bash> | <code bash> | ||
tomb=( "egy" "kettő" "három") | tomb=( "egy" "kettő" "három") | ||
</code> | </code> | ||
+ | |||
+ | A Bash tömb tartalmazhat számokat és karakterláncokat is: | ||
+ | |||
+ | <code bash> | ||
+ | tomb=( 12 "egy" 45 29 "kettő" "három") | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
Hivatkozás egy tömbelemre: | Hivatkozás egy tömbelemre: | ||
Sor 980: | Sor 1126: | ||
==== A tömb tulajdonságai ==== | ==== A tömb tulajdonságai ==== | ||
- | <code bash > | + | <code bash> |
#!/bin/bash | #!/bin/bash | ||
- | ${tomb[*]} # a tömb összes eleme | + | #Összes elem: |
+ | echo ${tomb[*]} | ||
+ | echo ${tomb[@]} | ||
+ | |||
+ | #Összes index: | ||
+ | echo ${!tomb[*]} | ||
+ | echo ${!tomb[@]} | ||
- | ${!tomb[*]} # a tömb összes indexe | ||
- | ${#tomb[*]} # a tömb elemeinek száma | + | # Elemek száma: |
+ | echo ${#tomb[*]} | ||
+ | echo ${#tomb[@]} | ||
- | ${#tomb[0]} # a 0-dik elem hossza | + | echo ${#tomb[0]} # a 0-dik elem hossza |
Sor 1001: | Sor 1154: | ||
#!/bin/bash | #!/bin/bash | ||
- | etelek=( | + | ketogenEtelek=( |
"Halsaláta" | "Halsaláta" | ||
"Zöldségkör" | "Zöldségkör" | ||
Sor 1007: | Sor 1160: | ||
"Narancs-joghurt" | "Narancs-joghurt" | ||
) | ) | ||
- | |||
- | count=${#etelek[@]} | ||
for item in ${ketogenEtelek[*]} | for item in ${ketogenEtelek[*]} | ||
Sor 1020: | Sor 1171: | ||
szóköz a tömb elemeiben. Ha a tömb elemei szóközöket is tartalmaznak, | szóköz a tömb elemeiben. Ha a tömb elemei szóközöket is tartalmaznak, | ||
akkor a következő ciklus alkalmas bejárásra: | akkor a következő ciklus alkalmas bejárásra: | ||
+ | |||
+ | A "*" karakter helyett használhatunk "@" karaktert is. | ||
+ | |||
+ | Szimpla for ciklus használata: | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Sor 1030: | Sor 1185: | ||
) | ) | ||
- | count=${#etelek[@]} | + | n=${#etelek[@]} |
- | for (( i=0; i<${count}; i++)) | + | for (( i=0; i<n; i++)) |
do | do | ||
echo ${ketogenEtelek[$i]} | echo ${ketogenEtelek[$i]} | ||
Sor 1038: | Sor 1193: | ||
</code> | </code> | ||
+ | ==== Tömb műveletek ==== | ||
+ | Hozzáfűzés | ||
+ | <code bash> | ||
+ | dobasok=(1 5 4) | ||
+ | dobasok+=(7 8) | ||
+ | echo ${dobasok[@]} | ||
+ | </code> | ||
- | <code bash bejar.sh> | ||
- | #!/bin/bash | ||
- | tomb=( | + | Ürítés: |
- | "alma" | + | dobasok=() |
- | "körte" | + | |
- | "barack" | + | |
- | "szilva" | + | |
- | ) | + | |
- | for i in "${tomb[@]}" | + | |
- | do | + | Tömb része: |
- | echo $i | + | <code bash> |
- | done | + | echo ${tomb[@]:2:3} |
</code> | </code> | ||
+ | |||
+ | A 2-s indextől szeretnénk, 3 darab karaktert. | ||
+ | |||
+ | |||
+ | Elem törlése: | ||
+ | <code bash> | ||
+ | tomb=(33 49 56 27) | ||
+ | unset tomb[1] | ||
+ | echo ${tomb[@]} | ||
+ | </code> | ||
+ | |||
+ | Ha ezek után kiíratjuk a tömb indexeit, ezt kapjuk: | ||
+ | <code bash> | ||
+ | echo ${!tomb[@]} | ||
+ | 0 2 3 | ||
+ | </code> | ||
+ | Hiányzik a 1-s index. | ||
+ | |||
+ | Egész tömb törlése: | ||
+ | <code bash> | ||
+ | unset tomb | ||
+ | </code> | ||
+ | |||
+ | ==== Deklarált tömb ==== | ||
+ | |||
+ | Indexelt tömb: | ||
+ | <code bash> | ||
+ | declare -a szamok | ||
+ | </code> | ||
+ | |||
+ | Asszociatív tömb: | ||
+ | <code bash> | ||
+ | declare -A tomb | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Indexelt tömb feltöltéssel: | ||
+ | |||
+ | <code bash> | ||
+ | declare -a szamok | ||
+ | szamok+=35 | ||
+ | szamok+=47 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Asszociatív tömbnek értékadás: | ||
+ | |||
+ | <code bash> | ||
+ | declare -A dolgozo | ||
+ | |||
+ | #egy érék hozzáadása: | ||
+ | dolgozo[fizetes]=3800000 | ||
+ | |||
+ | #több érték hozzáadása: | ||
+ | dolgozo=([nev]=János [telepules]=Szolnok) | ||
+ | echo ${dolgozo[nev]} | ||
+ | </code> | ||
+ | |||
===== String ===== | ===== String ===== | ||
Sor 1100: | Sor 1316: | ||
Megoldás lehet még az awk használata: | Megoldás lehet még az awk használata: | ||
+ | |||
<code bash> | <code bash> | ||
echo "ÁRVÍZTŰRŐ" | awk '{print tolower($0)}' | echo "ÁRVÍZTŰRŐ" | awk '{print tolower($0)}' | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | echo "Árvíztűrő" | awk '{print toupper($0)}' | ||
+ | </code> | ||
+ | |||
A Bash megoldás esetén használhatunk egyetlen ^ vagy , karaktert. Ekkor csak az első | A Bash megoldás esetén használhatunk egyetlen ^ vagy , karaktert. Ekkor csak az első | ||
Sor 1222: | Sor 1445: | ||
EOT | EOT | ||
+ | </code> | ||
+ | |||
+ | ==== Üres sorok törlése ==== | ||
+ | <code> | ||
+ | cat fajl.txt | sed '/^$/d' | ||
+ | </code> | ||
+ | |||
+ | ==== Adott karakterek törlése ==== | ||
+ | |||
+ | A következő karakterek törlése: | ||
+ | |||
+ | | . ? - , | | ||
+ | |||
+ | <code> | ||
+ | cat fajl.txt | sed '/[\.?-\,]//g' | ||
</code> | </code> | ||
Sor 1464: | Sor 1702: | ||
files | files | ||
+ | </code> | ||
+ | |||
+ | ==== Tömbök ==== | ||
+ | |||
+ | Tömb visszatérési érték: | ||
+ | |||
+ | <code bash> | ||
+ | function leker_tomb() { | ||
+ | tomb=(9 4 2 5) | ||
+ | echo ${tomb[@]} | ||
+ | } | ||
+ | |||
+ | a_tomb=($(leker_tomb)) | ||
+ | echo "Összes elem: "${tomb[@]} | ||
+ | echo "Mérete: "${#tomb[@]} | ||
</code> | </code> | ||
Sor 2167: | Sor 2420: | ||
</code> | </code> | ||
- | Prábluk meg a scriptet végrehajtani set -e használata nélkül is. | + | Próbáljuk meg a scriptet végrehajtani set -e használata nélkül is. |
==== Zónafájl felvétele ==== | ==== Zónafájl felvétele ==== | ||
Sor 2212: | Sor 2465: | ||
</code> | </code> | ||
+ | ==== Kártyalapok kiíratása ==== | ||
+ | |||
+ | <code bash lapok.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | function lap() { | ||
+ | x=$1 | ||
+ | y=$2 | ||
+ | |||
+ | f="\u2660" # pikk | ||
+ | tput cup $y $x | ||
+ | echo -e "\u250c\u2500\u2500\u2510" | ||
+ | tput cup $((y+1)) $x | ||
+ | echo -e "\u25026$f\u2502" | ||
+ | tput cup $((y+2)) $x | ||
+ | echo -e "\u2514\u2500\u2500\u2518" | ||
+ | } | ||
+ | |||
+ | clear | ||
+ | |||
+ | lap 5 5 | ||
+ | lap 10 5 | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Az eredmény: | ||
+ | <code> | ||
+ | ┌──┐ ┌──┐ | ||
+ | │6♠│ │6♠│ | ||
+ | └──┘ └──┘ | ||
+ | </code> | ||
+ | |||
+ | A vonalak: | ||
+ | <code> | ||
+ | u2550 u252c | ||
+ | u250c ┌ ─ ┬ ┐ u2510 | ||
+ | |||
+ | u2502 │ | ||
+ | |||
+ | u251c ├ ┼ u253c ┤ u2524 | ||
+ | |||
+ | u2514 └ ┴ ┘ u2518 | ||
+ | u2534 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | * treff (♣) -- u2663 | ||
+ | * káró (♦) -- u2666 | ||
+ | * kőr (♥) -- u2665 | ||
+ | * pikk (♠) -- u2660 | ||
+ | * További unicode: https://unicode-table.com/hu/ | ||
===== Külső linkek ===== | ===== Külső linkek ===== | ||
* http://tldp.org/LDP/Bash-Beginners-Guide/html/ 2018) | * http://tldp.org/LDP/Bash-Beginners-Guide/html/ 2018) | ||
Sor 2239: | Sor 2544: | ||
* https://www.linuxjournal.com/content/return-values-bash-functions (2020) | * https://www.linuxjournal.com/content/return-values-bash-functions (2020) | ||
* https://linuxhint.com/return-string-bash-functions/ (2020) | * https://linuxhint.com/return-string-bash-functions/ (2020) | ||
+ | * https://github.com/ruanyf/simple-bash-scripts (2020) |