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 Következő változat Következő változat mindkét oldalon | ||
oktatas:linux:shell_programozas [2020/02/13 16:29] admin [Tömbök] |
oktatas:linux:shell_programozas [2020/02/25 22:40] admin [A set parancs] |
||
---|---|---|---|
Sor 4: | Sor 4: | ||
* **Szerző:** Sallai András | * **Szerző:** Sallai András | ||
- | * Copyright (c) Sallai András, 2011-2013, 2016-2020 | + | * Copyright (c) Sallai András, 2011-2020 |
* Licenc: GNU Free Documentation License 1.3 | * Licenc: GNU Free Documentation License 1.3 | ||
* Web: http://szit.hu | * Web: http://szit.hu | ||
Sor 456: | Sor 456: | ||
</code> | </code> | ||
+ | ==== Dupla zárójel ==== | ||
+ | A következő program a szam változó értéket 1-gyel növeli: | ||
+ | <code bash szamol.sh> | ||
+ | #!/bin/bash | ||
+ | szam=3 | ||
+ | szam=$((szam+1)) | ||
+ | echo $szam | ||
+ | </code> | ||
+ | Variációkat láthatunk a növelésre: | ||
+ | <code> | ||
+ | szam=$((szam+1)) | ||
+ | ((szam=szam+1)) | ||
+ | ((szam+=1)) | ||
+ | ((szam++)) | ||
+ | </code> | ||
+ | ==== A let kulcsszó használata ==== | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | szam=3 | ||
+ | let "szam=szam+1" | ||
+ | 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++ | ||
+ | </code> | ||
+ | |||
+ | ==== A bc ==== | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | declare -i szam=4 | ||
+ | bc <<< "$szam+2" | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | declare -i szam=4 | ||
+ | echo "$szam+2" | bc | ||
+ | |||
+ | </code> | ||
+ | ===== 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> | ||
===== Szelekció ===== | ===== Szelekció ===== | ||
Sor 1100: | Sor 1170: | ||
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 1196: | Sor 1273: | ||
echo ${tomb[0]} | echo ${tomb[0]} | ||
+ | </code> | ||
+ | |||
+ | ==== Heredoc szintaxis ==== | ||
+ | |||
+ | <code bash naplo.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | date=$(date "+%Y-%m-%d") | ||
+ | |||
+ | cat << EOT | ||
+ | |||
+ | ========== | ||
+ | |||
+ | $date | ||
+ | |||
+ | Óra: | ||
+ | Téma: | ||
+ | Hiányzók: | ||
+ | 1 óra: | ||
+ | 2 óra: | ||
+ | 3 óra: | ||
+ | Dolgozat: | ||
+ | Hetes: | ||
+ | |||
+ | 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 2141: | Sor 2259: | ||
</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 2186: | Sor 2304: | ||
</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) |