trøbbel med bash-script

Kategori overført fra Linux1

trøbbel med bash-script

Innleggav orjanra » tor 15.02.2007 23:39

prøvde dette på diskusjon.no uten hell.... noen som vet?

hvordan kan jeg definere en variabel i et bashscript til å være et fast antall siffer? dvs definere en variabel i til å være 001, og så inkrementere denne til 002 osv?

det jeg vil er at denne snutten
Kode: Merk alt
set i
i=001
while ((i<150))
do
echo ${i}
((++i))
done


skal gi meg
Kode: Merk alt
001
002
003
004
.
.
148
149


gjør jeg det slik nå, inkrementerer den fra 001 til 2. og da blir det feil hvis jeg skal bruke variabelen i f.eks et filnavn.

noen som vet?

Brukerens avatar
medlem i 215 måneder
 

Innleggav ak » tor 15.02.2007 23:50

Legg inn if-setning om at hvis den er mindre enn ti så spytter den ut 00i, mindre enn 100, men større enn 9, så spytter den ut 0i

Administrator
Brukerens avatar
medlem i 236 måneder
 

Innleggav TO » fre 16.02.2007 0:06

$ type printf
printf is a shell builtin
$ man bash
/printf
printf [-v var] format [arguments] .... standard printf(1)

Følgelig kan man også gjøre slikt:
$ svaret=$(printf "%03i" 42); echo $svaret
042
medlem i 213 måneder
 

kan du bruke zsh?

Innleggav dajomu » lør 17.02.2007 19:56

Mulig jeg har misforstått og jeg er dessverre ikke programmerer, men jeg mener at du kan bruke zsh for jobben.
Kode: Merk alt
echo {001..150}

Brukerens avatar
medlem i 224 måneder
 

Innleggav moma » lør 17.02.2007 21:49

Hva med seq? F.eks:

for i in $(seq 50); do echo $i; done

Erfaren
Brukerens avatar
medlem i 235 måneder
 

001

Innleggav dajomu » lør 17.02.2007 22:21

Blir de foregående nullene ivaretatt med seq?

Brukerens avatar
medlem i 224 måneder
 

Re: 001

Innleggav ehh » søn 18.02.2007 0:54

dajomu skrev:Blir de foregående nullene ivaretatt med seq?


Ja, hvis du tar med w-opsjonen:
Kode: Merk alt
seq -w 1 100

Brukerens avatar
medlem i 227 måneder
 


Returner til Utvikling i Linux



Hvem er i Forumene

Registrerte brukere: Google [Bot]