Jeg har lavet et lille script til komandolinjen på en synology, som kører på linux. tester () { dom=11; dow=1; echo "dom = $dom dow = $dow" ; if [[ "$dom" = "1" ]] ; then echo "fuld backup" ; elif [[ "$dow" = "1" && "$dom" = "1" ]] ; then echo "ingenting, backup er taget" ; elif [[ "$dow" = "1" && "$dom" < "7" ]] ; then hours=$((($dom-1)*(24))) && echo "$hours timer decremental" ; elif [[ "$dow" = "1" && "$dom" > "6" ]] ; then hours=168 && echo "$hours timer decremental" ; else hours=24 && echo "incremental backup" ; fi } Scriptet fungere glimrende når jeg tester det, men ikke når $dom er over 10. Der bliver resultatet denne linle: elif [[ "$dow" = "1" && "$dom" < "7" ]] ; then hours=$((($dom-1)*(24))) && echo "$hours timer decremental" ; Som burde være resultatet når $dom er under 7 Håber nogen kan forklare mig hvorfor linux ikke læser tal over 10?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Tak for svaret :-) Har ændret til både: tester () { echo "dom = $dom dow = $dow" ; if [[ "$dom" = "1" ]] ; then echo "fuld backup" ; elif [[ $dow = 1 && $dom > 6 ]] ; then hours=168 && echo "$hours timer decremental" ; elif [[ $dow = 1 && $dom < 7 ]] ; then hours=$((($dom-1)*(24))) && echo "$hours timer decremental" ; else hours=24 && echo "incremental backup" ; fi } og til tester () { echo "dom = $dom dow = $dow" ; if [[ "$dom" = "1" ]] ; then echo "fuld backup" ; elif [[ "$dow" = 1 && "$dom" > 6 ]] ; then hours=168 && echo "$hours timer decremental" ; elif [[ "$dow" = 1 && "$dom" < 7 ]] ; then hours=$((($dom-1)*(24))) && echo "$hours timer decremental" ; else hours=24 && echo "incremental backup" ; fi } dvs. ingen "" om selve tallene. Resultatet er desværre det samme. Det er som om at 11 - 19 bliver læst som 1 og 20-29 bliver læst som 2 osv. har lige testet denne linje: dow=1; dom=11; if [[ $dow = 1 && $dom < 2 ]] ; then echo "sand" ; fi Den er sand dow=1; dom=22; if [[ $dow = 1 && $dom < 3 ]] ; then echo "sand" ; fi Den er sand
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.