Portál AbcLinuxu, 29. července 2025 13:18
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.