bash_general
Toto je starší verze dokumentu!
Obecně Bash
- bash je velice mocný :) jde v něm všechno, ale člověk hodně zapomíná :) Sespsal jsem alespoň pár velice často zapomínaných věcí :)
Čtení ze souboru
- velice jednoduché čtení po jednom řádku
- pokud se přenastaví IPS, lze myslím použít i na čtení hodnot oddělených jinak než newline
while read line do echo $line done < $FILE
Pole
- inicializace
MY_ARRAY=("ONE" "TWO")
- přistup k hodnotám
echo ${MY_ARRAY(0)}
echo ${MY_ARRAY(1)}
Datum a čas
- převod data na timestamp
date +%s
- a zpátky
date -d @1365436714
Regulární výrazy
- bash podporuje regulární výrazy přímo, například v podmínkách (také v cyklech..)
[[ $string =~ $regex ]]
- pěkný regex pro poctivé parsování IP adresy přes bash
RE_IP="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
Startwith/Endwith
- pro porovnání typu startwith/endwith lze použít i standardní možnosti shellu (parameter substitution, example 10-8)
MY_STR="123ABC" MY_SUB1="123" MY_SUB2="ABC" echo "${MY_STR#$MY_SUB1}, ${MY_STR%$MY_SUB2}" [ "${MY_STR}" != ${MY_STR#$MY_SUB1} ] && echo "${MY_STR} startwith ${MY_SUB1}" [ "${MY_STR}" != ${MY_STR%$MY_SUB2} ] && echo "${MY_STR} endwith ${MY_SUB2}"
ABC, 123 123ABC startwith 123 123ABC endwith ABC
Řetězce
- nahrazení všech výskytů podřetězce řetězcem
X="a.b.c"; echo ${X//./#} a#b#c
- získání podřetězce
x="AAA#BBB"; echo ${x#*#}; echo ${x%#*} BBB AAA
bash_general.1546768143.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
