#!/bin/bash
zaloha=/var/zaloha
if [ -d "$zaloha" ]; then
echo "OK"
else
echo "Vytvarim slozku" && mkdir $zaloha
fi
rm -rf /var/zaloha/*
x=$(cat /var/tuxbox/config/enigma/config|grep s:/ezap/ui/skin)
y=$(echo ${x:17})
cp /var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml $zaloha
old="<map name="eServiceSelector.Entry.Description" font="Blue.Regular" size="30" />"
new="<map name="eServiceSelector.Entry.Description" font="Blue.Regular" size="34" />"
sed -i "s/$old/$new/g" /var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml
exit 0
Tejto časti rozumiem:
zaloha=/var/zaloha # vytvorenie premennej
if [ -d "$zaloha" ]; then # ak zložka /var/zaloha existuje vtedy OK
echo "OK"
else
echo "Vytvarim slozku" && mkdir $zaloha # ak zložka /var/zaloha neexistuje vtedy ju vytvorí
fi
Tohto sa bojím:
rm -rf /var/zaloha/* # nezmaže to náhodou všetko aj celú zložku /var
, ak zmaže len súbory v zložke zaloha je to OK
# niekde som čítal že príkaz ~# rm -rf je veľmi nebezpečný, možno keby tam bolo rm -f, ale nie som si istý
Tu sú premenné ktoré zdá sa mi, nie sú nikde použité
x=$(cat /var/tuxbox/config/enigma/config|grep s:/ezap/ui/skin) # x= potrebný riadok v súbore config
~# echo $x # výsledok:
~# s:/ezap/ui/skin=/var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml
y=$(echo ${x:17}) # y= časť riadku od 17 znaku do konca
~# echo $y # výsledok:
~# var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml
# treba to ošetriť ak sa "s:/ezap/ui/skin" vôbec v súbore config nenachádza a to tak, že script vypíše chybu a ukončí sa
Tu som skúsil použiť premennú $y pretože cesta a názov môžu byť rozne
cp /var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml $zaloha # zálohovanie old súboru
#pokus
~# cp $y $zaloha # výsledok:
~# cp: chýba operand cieľového súboru za `var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml'
Viac informácií získate príkazom `cp --help'.
#Skúšal som niečo ale nešlo mi to.
Toto je mi jasné, dúfam
old="<map name="eServiceSelector.Entry.Description" font="Blue.Regular" size="30" />"
new="<map name="eServiceSelector.Entry.Description" font="Blue.Regular" size="34" />"
# vymení 30 za 34, je tam ale problém, riadok určite obsahuje iba to červené, ostatné môže byť inak
<map name="eServiceSelector.Entry.Description" font="Blue.Regular
" size="30" />Toto je asi tiež jasné
sed -i "s/$old/$new/g" /var/tuxbox/config/enigma/skins/new_blueline_skin_v3.esml # vymení v súbore riadok old za new
Poradí niekto ako ďalej?