The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Automatisk kopi av filer fra mappe til mappe på instant skriftlig Bashar UNIX for Advanced & ekspertbrukere 2 08-21-2008 03:44
foreach loop ROOZ Shell programmering og Skripting 3 06-05-2008 04:20
foreach loop abch624 Shell programmering og Skripting 1 03-19-2008 09:34
Analysere. Txt-fil for mappenavnet og FTP til corrsponding mappe. MeganP Shell programmering og Skripting 3 07-03-2007 02:54
foreach kommando? geoquest UNIX for Dummies Spørsmål og svar 5 05-20-2002 06:11

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 08-10-2007
eltinator eltinator is offline
Registrert bruker
  
 

Bli Dato: juli 2007
Innlegg: 63
foreach mappe

Hei,

Jeg har et lite problem her, og jeg kan ikke få det til å fungere. Jeg programmering et skript for bash og jeg trenger å gjøre noe for alle mappen i en katalog. Så jeg er i katalogen, og jeg vil bruke foreach-setningen, men jeg dont vite hvor å referere alle mappene i den katalogen. For å gjøre ting enkle her er koden min:

Code:
foreach instance (.)
cd instance
mkdir test
end
utgangspunktet for hver mappe i denne katalogen, vil jeg cd inn i den og lage en mappe kalt test. Any ideas?
  #2 (permalink)  
Old 08-11-2007
blowtorch's Avatar
blowtorch blowtorch is offline Forum Advisor  
Støttespiller
  
 

Bli Dato: desember 2004
Sted: Singapore
Innlegg: 2350
For eksempel slik:
Code:
for file in *; do
   if [ -d $file ]; then
      cd $file; mkdir test
   fi
done
-EDIT
Du kan hoppe testing for katalogen også. 'cd' fungerer ikke på noe annet enn kataloger (men det kan være lenker som peker til kataloger og du vil ende opp skape "test" der du ikke vil).
  #3 (permalink)  
Old 08-11-2007
lorcan lorcan is offline
Registrert bruker
  
 

Bli Dato: mai 2007
Innlegg: 219
En liten korreksjon blowtorch.

Code:
for file in *; do
   if [ -d $file ]; then
      mkdir $file/test; 
   fi
done
Siden du hadde sendt ut en cd-kommandoen det ville skape sub-dir bare for den første katalogen. Så resultatet ikke skulle bli som forventet.

Sist endret av lorcan; 08-11-2007 på 08:51..
  #4 (permalink)  
Old 08-13-2007
eltinator eltinator is offline
Registrert bruker
  
 

Bli Dato: juli 2007
Innlegg: 63
Sitat:
Originally Posted by lorcan View Post
En liten korreksjon blowtorch.

Code:
for file in *; do
   if [ -d $file ]; then
      mkdir $file/test; 
   fi
done
Siden du hadde sendt ut en cd-kommandoen det ville skape sub-dir bare for den første katalogen. Så resultatet ikke skulle bli som forventet.
Hei, hadde jeg et spørsmål om cd ting, hvorfor det ikke fungerer? Jeg endre koden for å gå inn i visse undermapper i hver mappe, og deretter utføre en kommando, så jeg var ikke sikker på hvordan du gjør det. Innerst inne Jeg prøver å gjøre noe sånt nå ...

current directory:
abc

Innsiden av hver katalog det er en fil her (bruker som eksempel):
a / test / mappe / script.sh

Sorry for den generiske navn. Nå er det jeg ønsker meg skriften å gjøre er å få tilgang til script.sh i hver mappe og kjør det. Jeg ville gjøre for uttalelse, og deretter cd til at banen og gjør deretter ett utføre kommandoen men jeg antar det er ikke så enkelt. Any ideas? takk!
  #5 (permalink)  
Old 08-13-2007
lorcan lorcan is offline
Registrert bruker
  
 

Bli Dato: mai 2007
Innlegg: 219
Du kan prøve som

Code:
for file in *; do
   if [ -d $file ]; then
      ./$file/test/folder/script.sh; 
   fi
done

eller hvis du er bestemt å gå inn i dir og kjøre skriptet deretter prøver som dette

Code:
scriptHome=$(pwd)   # Assuming that you are running from the path where a b c are present
for file in *; do
   if [ -d $file ]; then
      cd $file/test/folder;
      ./script.sh
   fi
   cd $scriptHome
done
Igjen forutsatt at trestruktur test / mappe finnes i kataloger a, b og c.
  #6 (permalink)  
Old 08-11-2007
reborg's Avatar
reborg reborg is online now Forum Staff  
Administrator
  
 

Bli Date: Mar 2005
Sted: Irland
Innlegg: 4236
Sitat:
Originally Posted by eltinator View Post
Hei,
Code:
foreach instance (.)
cd instance
mkdir test
end
Ditt Hovedproblemet her var ikke logikken, men at du brukte syntaksen fra feil skall. Dette er csh syntaks.
  #7 (permalink)  
Old 08-11-2007
eltinator eltinator is offline
Registrert bruker
  
 

Bli Dato: juli 2007
Innlegg: 63
Takk fyrene. Så i utgangspunktet er det ingen foreach kommandoen i bash?
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 08:07.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0