Toon posts:

Waarde in een variable plaatsen met een 0 ervoor in Bash

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een script te schrijven waarin ik de dagen van de maand en de dagen van de dag als een directory probeer weg te schrijven in een variable in Bash.
Nu heb ik directories waarvan de dagen onder de 9 een 0 bevat zoals

Maanden: 01 02 03 04 05 06 07 08 09 10 11 12

En de dagen hetzelfde. Ik heb loggings die ik wil wegschrijven in het formaat [DAG][MAAND]

Nu is het zo als ik de volgende statement uitvoer in bash:

if [ $DAY -lt 10 ]
then VAR="0$DAY$MONTH"
else VAR="$DAY$MONTH"

Ik de volgende foutmelding krijg: value too great for base (error token is ... ) etc
Ik heb gelezen dat als je een 0 achter een variable plaatst hij deze ziet als een octaal getal. Maar hoe moet ik dit oplossen? :?

Weet er iemand hoe ik van een variable in bash een 0 achter kan schrijven zonder dat ik deze foutmelding krijg?
Alvast bedankt :)

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Ik snap je probleem niet? Wil je de 0 er nou voor of achter? Je zegt de hele tijd erachter, maar je bedoelt ervoor volgens mij. Verder geeft jouw script hier geen foutmelding ofzo
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ DAY=9
$ MONTH=10
$ if [ $DAY -lt 10 ]
> then VAR="0$DAY$MONTH"
> else VAR="$DAY$MONTH"
> fi
$ echo $VAR
0910
$ DAY=15
$ if [ $DAY -lt 10 ]
> then VAR="0$DAY$MONTH"
> else VAR="$DAY$MONTH"
> fi
$ echo $VAR
1510
$

Gaat hier prima?

  • Wilke
  • Registratie: December 2000
  • Laatst online: 29-04 12:38
Ik moet zeggen dat ik er ook niks van snap; wat wil je nu precies en wat gaat er fout?

Verwijderd

Topicstarter
Dit is in eerste instantie wat ik van plan ben:

while [ $MONTHCOUNTER -lt 13 ]
do
MONTHCOUNTER=$(($MONTHCOUNTER+1))
if [ $MONTHCOUNTER -lt 10 ]
then MONTH="0$MONTHCOUNTER"
else MONTH="$MONTHCOUNTER"
fi
while [ $DAYCOUNTER -lt 31 ]
do
DAYCOUNTER=$(($DAYCOUNTER+1))
if [ $DAYCOUNTER -lt 10 ]
then DAY="0$DAYCOUNTER"
else DAY="$DAYCOUNTER"
fi
echo $DAY$MONTH
done
done

Dus ik wil een tellertje waar ik eerst de dagen van de dag af wil drukken van de eerste maand en dan de dagen van de daaropvolgende maand. Ik weet niet of ik het zo goed doe maar hij print alleen van de eerste maand de waarden af.
Dit is eigenlijk een nieuw probleem want de fout in mijn eerste vraag komt omdat ik declare -i gebruikt heb voor de variabele 8)7

Ik ben een n00b in bash maar ik wil dit toch voor elkaar krijgen :)