The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
gcd.sh script ikke virker ... kantze Shell Programmering og Scripting 1 01-17-2008 09:46 PM
Modify Perl-script til at arbejde med txt - Tilladelser script joangopan Shell Programmering og Scripting 1 09-13-2007 12:38 AM
Min script ikke virker - kan du pls hjælp? BearCheese Shell Programmering og Scripting 1 06-29-2007 06:12 AM
Scriptet ikke virker, men kommandoer inde i arbejde cheongww UNIX for dummyer Spørgsmål & svar 2 11-14-2006 10:52 PM
sed script. Hvordan fungerer det? billy5 Shell Programmering og Scripting 2 09-02-2005 05:45 PM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-13-2008
llsmr777 llsmr777 is offline
Registreret Bruger
  
 

Join Date: May 2007
Stillinger: 58
Hjælp kan ikke få scriptet til at arbejde, hvor jeg har brug for det til ...

Hej tak for alle, der reagerer.

Her er mit script:
Code:
for i in `ls -1 | grep $1 | grep  $2`
do
x=`echo $i | sed 's/\.Sent/\.Done/g'`
echo mv $i DONE/$x
echo "Is this OK?"
read user_response

case $user_response in

"y"|"Y")
        mv $i DONE/$x
        echo mv $i DONE/$x;;
*)
        echo "No changes made ...";;

esac

done

Listen det griber er mere end én fil.
Når jeg køre dette det spørger mig, om "Er det OK?" for hver fil. Jeg ønsker, det skal bare spytter ud listen så spørge mig, hvis jeg siger ja, så jeg vil have den til at flytte alle de filer det lister.

Tak!

Sidst redigeret af radoulov; 10-13-2008 på 04:07 PM.. Årsag: tilføjet kode tags
  #2 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Stillinger: 2361
Citat:
Oprindeligt Indsendt af llsmr777 View Post
Hej tak for alle, der reagerer.

Her er mit script:

Du bedes vedlægge kode i [code] tags. (Rediger din oprindelige post.)
Citat:
Code:
for i in `ls -1 | grep $1 | grep  $2`

Du behøver ikke -1 når produktionen ikke går til en terminal.

Du behøver ikke to tilfælde af grep; Brug grep-e "$ 1"-e "$ 2".

Har du sandsynligvis ikke brug for lsEnten, og det vil bryde dig script eventuelle arkivnavne indeholde mellemrum.

Hvis du forsøger at få filer med et bestemt mønster, bruge jokertegn, f.eks:

Code:
for i in *$1*$2*
Citat:
Code:
do
x=`echo $i | sed 's/\.Sent/\.Done/g'`

Du behøver ikke sed:

x \u003d $ (i%%. Sendte *). Udfærdiget $ (i # *. Sendt)
Citat:
Code:
echo mv $i DONE/$x
echo "Is this OK?"
read user_response

case $user_response in

"y"|"Y")
        mv $i DONE/$x
        echo mv $i DONE/$x;;
*)
        echo "No changes made ...";;

esac

done
Listen det griber er mere end én fil.
Når jeg køre dette det spørger mig, om "Er det OK?" for hver fil. Jeg ønsker, det skal bare spytter ud listen så spørge mig, hvis jeg siger ja, så jeg vil have den til at flytte alle de filer det lister.

Hvis du ikke ønsker at blive bedt om hver enkelt fil, skal du ikke stille spørgsmålet inde i sløjfe. Opret en liste og til stede, at der uden for loop.
  #3 (permalink)  
Old 10-13-2008
llsmr777 llsmr777 is offline
Registreret Bruger
  
 

Join Date: May 2007
Stillinger: 58
Tak for dit svar.

Jeg troede, at min sag blev uden for loop?
  #4 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Stillinger: 2361
Citat:
Oprindeligt Indsendt af llsmr777 View Post
Jeg troede, at min sag blev uden for loop?

Sløjfen er alt mellem gøre og gjort. That's, hvor du spørger.
  #5 (permalink)  
Old 10-13-2008
llsmr777 llsmr777 is offline
Registreret Bruger
  
 

Join Date: May 2007
Stillinger: 58
Ok, så jeg ændrede det, men efter den beder mig er det kun flyttes en fil?
Skal jeg ikke skal bruge en sag redegørelse til at udføre de flytte?
Jeg bruger det til at spørge brugeren, hvis listen er korrekt.

Jeg tænkte, at inde i sagen erklæring jeg bør lægge, hvad der skal udføres, hvis brugeren siger nej.
Lyder måske jeg skal ikke bruge sagen eller sætte det et andet sted i scriptet?

Jeg har meget nyt, så kan du bære over med mig. Tak!

Sidst redigeret af llsmr777; 10-13-2008 på 04:36 PM..
  #6 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Stillinger: 2361
Citat:
Oprindeligt Indsendt af llsmr777 View Post
Ok, så jeg ændrede det, men efter den beder mig er det kun flyttes en fil?

Hvad gjorde du ændre den til?
Citat:
Skal jeg ikke skal bruge en sag redegørelse til at udføre de flytte?

En sag erklæring kan ikke flytte noget. Du bruger MV at gøre farten.
Citat:
Jeg bruger det til at spørge brugeren, hvis listen er korrekt.

Hvordan bruger du det? Vi er ikke tankerne læsere.
Citat:
Jeg tænkte, at inde i sagen erklæring jeg bør lægge, hvad der skal udføres, hvis brugeren siger nej.

... og hvad der skal udføres, når brugen siger ja.
Citat:
Lyder måske jeg ikke skulle bruge sag

Ja, du skal bruge æske.
Citat:
eller sætte det et andet sted i scriptet?

Er ikke, hvad jeg foreslog?
  #7 (permalink)  
Old 10-13-2008
llsmr777 llsmr777 is offline
Registreret Bruger
  
 

Join Date: May 2007
Stillinger: 58
Oh I'm sorry. Jeg er naturligvis clueless Jeg ved det!

her er min kode

Code:
for i in `ls -1 | grep $1 | grep  $2`
do
x=`echo $i | sed 's/\.Sent/\.Done/g'`
echo mv $i DONE/$x
done
echo "Is this OK?"
read user_response

case $user_response in

"y"|"Y")
        mv $i DONE/$x
        echo moved $i to DONE/$x;;
*)
        echo "No changes made ...";;

esac

Code:
for i in `ls -1 | grep $1 | grep  $2`
do
x=`echo $i | sed 's/\.Sent/\.Done/g'`
echo mv $i DONE/$x
done
Her er jeg compliing min liste, at jeg vil omdøbe fra. Sendt til. Udfaerdiget
Og så outputing det til skærmen

Code:
echo "Is this OK?"
read user_response
Her vil jeg spørge, hvad outputed var hvad brugeren ønsker at flytte


Code:
case $user_response in

"y"|"Y")

        for i in `ls -1 | grep $1 | grep  $2`
        do
        x=`echo $i | sed 's/\.Sent/\.Done/g'`
        mv $i DONE/$x;;
*)
        echo "No changes made ...";;

esac
Her ønsker jeg de filer, der skal flyttes fra. Sendt til. Udfærdiget og derefter, hvis brugeren siger Y
og til at udskrive til skærmen "ikke foretaget nogen ændringer", hvis brugeren siger nej

Når jeg køre scriptet det viser alle de filer
Derefter spørger mig, om det er ok
når jeg ramt Y
Og jeg har en liste kun 1 af de filer opført blev flyttet ikke alle.

Tak igen.

Sidst redigeret af llsmr777; 10-13-2008 på 05:47 PM..
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:24 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0