Yamato47 Skrevet 22. desember 2003 Del Skrevet 22. desember 2003 (endret) Jeg har variabler ved navn fra a1 til a20 og b1 til b10 som jeg skal gi som input til kommandoer i en dobbel loop. Hvordan gjør jeg det? Her er en kladd av skriptet: #!/bin/sh a1=alternativt.film a2=alternativt.lyd a3=avspilling.program a4=bøker a5=data-adm.program a6=diverse a7=dokumentarer.film a8=dokumentarer.lyd a9=langfilmer a10=lydbøker.anna a11=lydbøker.romaner a12=musikk a13=produktivitet.program a14=radio a15=tegneserier a16=tv-serier b1=flopp b2=mein b3=extra b4=beyond b4=winxp a-loop rm -rf /var/data/virtuell/a$loop/* b-loop /usr/local/ahb/mkln /var/data/fysisk/b$loop/a$loop /var/data/virtuell/a$loop b-loopend a-loopend - du skjønner sikkert hva som skjer inni loopen. mkln lager symbolske linker i katalogen $2 til alle filer i katalogen $1. Jeg kan jo skrive det helt ut, men det er en nokså lite elegant måte å gjøre det på. ... ok, så er jeg litt lat i dag Endret 22. desember 2003 av arehb Lenke til kommentar
Langbein Skrevet 22. desember 2003 Del Skrevet 22. desember 2003 Hvis du håper at noen skal skrive hele skriptet for deg må du nok satse på noen andre, for jeg liker ikke å gjøre mer enn helt banale ting i bash. Bruker heller python til slike ting, men uansett: Bash støtter visst arrays (selv om jeg aldri har brukt det selv), og syntaksen er er som følger: katalog[1]=bilder katalog[2]=filmer echo ${katalog[2]} # bør skrive ut 'filmer' Alternativt kan man spesifisere filer/kataloger direkte i en for-setning: for katalog in bilder filmer mp3 do echo $katalog done Håper du kan bruke noe av dette videre! Skal prøve å lære meg litt mer bash en dag jeg kjeder meg Lenke til kommentar
Cronius Skrevet 22. desember 2003 Del Skrevet 22. desember 2003 (endret) Jeg skjønte ærlig talt ikke bæret av hverken det du prøver å gjøre eller det du spør om, men pytt sann. Tar du tipset over og kombinerer det med en let tall=0 for bla bla do bla bla echo $katalog[$tall] bla bla bla let tall+=1 done Så begynner det å ligne ... noe.. etterhvert Edit: syntax feil Endret 22. desember 2003 av Cronius Lenke til kommentar
Yamato47 Skrevet 23. desember 2003 Forfatter Del Skrevet 23. desember 2003 (endret) Takk for tipsa! Her er det ferdige skriptet. # cat mkservertree #!/bin/sh for kategori in \ \ alternativt.film \ alternativt.lyd \ avspilling.program \ bøker \ data-adm.program \ diverse \ dokumentarer.film \ dokumentarer.lyd \ langfilmer \ lydbøker.anna \ lydbøker.romaner \ musikk \ produktivitet.program \ radio \ tegneserier \ tv-serier \ do for volum in \ \ flopp \ mein \ extra \ beyond \ winxp \ do /usr/local/ahb/mkln /var/data/fysisk/$volum/$kategori /var/data/virtuell/$kategori done done sshahb@pufferfish:/usr/local/ahb# cat mkln #!/bin/sh echo $1 echo $2 ls $1 | while read file do ln -s "$1"/"$file" "$2" done Endret 23. desember 2003 av arehb Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå