Portál AbcLinuxu, 25. prosince 2025 08:53
mysql -N -D webconf -u root -e 'update mesice set mesi='$mesic' where id=2'našel sem ji tu v některé starší diskusi. Dostanu tuhle hlasku
line 14: [: mesic: integer expression expectedpokud místo proměnné použiju přímo hodnotu, tak to funguje bez problémů. Jakým způsem by se dalo pracovat s mysql v bashi?
mysql -N -D webconf -u root -e "update mesice set mesi=$mesic where id=2"
mysql -N -D webconf -u root -e "update mesice set mesi='$mesic' where id=2"
[ nevedel, ci je. primlouvam se znovu za vetsi poodhaleni tajemneho radku 14, co ze je to tomu prikazu [ predhozeno.
[ (ekvivalent prikazu test), kde to pozaduje integer a ne to, co tam misto integeru je. Ale to by chtelo uvest bud cely ten skript a nebo aspon ten radek 14.
#! /bin/bash
#spousteno cronem kazde 3 hodiny
echo "######################### SYNCH - START ###########################################"
ntpdate ntp.cesnet.cz
##############################Vlozeni noveho mesice#####################################
#zjisteni aktualniho(posledniho-Last) mesice LMounth
LMounth=$(date +%m)
LMounth=${LMounth#0}
#osetreni pokud mesic zacina 0 ;je potreba regulerni cislo
LMounth=${LMounth#0}
#zjisteni aktualniho(posledniho-Last) roku LYear
LYear=$(date +%Y)
LDate=$LYear$LMounth
#z DB vyber nejvyssi datum a porovnej jestli neni mensi nez aktualni, v pripade ze je pridej mesic
zaznam=$(mysql -N -D webconf -u root -e "select mesice.id,mesice.mesicnum from mesice
join (select max(mesice.mesicnum)as mesicmax from mesice)as nejvyssi on mesice.mesicnum=mesicmax")
mesicid=${zaznam%%$'\t'*}
zaznam2=${zaznam#$mesicid}
rok=${zaznam2%%/*}
rok=${rok#*$'\t'}
mesic=${zaznam2#*$rok/}
Mounth=${mesic#0}
Year=$rok
while [ "$Year$Mounth" != "$LYear$LMounth" ]; do
Mounth=$((Mounth + 1))
if [ "$Mounth" -gt 12 ]; then
Year=$((Year+1))
Mounth=1
fi
mesicid=$((mesicid+1))
#slovni zapis mesice
##definice pole SMesic
SMesic=( nultý leden únor březen duben květen červen červenec srpen září říjen listopad prosinec)
mesicnum=$(echo $Year'/'$Mounth)
if [ "${#Mounth}" = 1 ];then
mesicnum=$(echo $Year'/0'$Mounth)
fi
# mysql -N -D webconf -u root -e "update mesice set mesic='${SMesic[$Mounth]} $Year', mesicnum='$mesicnum' where id='$mesicid'"
mysql -N -D webconf -u root -e "insert mesice (mesic,mesicnum) values ('${SMesic[$Mounth]} $Year','$mesicnum')"
done
echo "######################### SYNCH - HOTOVO ##########################################"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.