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
Problem i For Loop Observatørernes Shell Programmering og Scripting 2 05-28-2008 03:43 AM
loop problem Maskot Shell Programmering og Scripting 1 05-25-2007 05:10 AM
Problemet med for loop / sed? chiru_h Shell Programmering og Scripting 2 08-27-2006 12:55 PM
loop Problem dhananjaysk Shell Programmering og Scripting 3 03-31-2006 02:05 PM
Problemet med, mens loop mridula Højtstående Programmering 1 12-11-2005 11:44 AM

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 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Aug 2007
Beliggenhed: Bangalore
Posts: 377
for loop problem

Hej,
Jeg har en mappe kaldet logs, som jeg har log-filerne.

Jeg er nødt til at røre den fil, før du sletter den.

Jeg gør sådan her
filestodelete \u003d "*. log * * log *"

til filer i $ filestodelete
gøre
touch $ filer $ filer. $ (date +% a)
rm-f $ filestodelete
gjort

touch ikke fungerer her, betyder, at det ikke rører den fil, før du sletter den.
venlig at hjælpe mig i dette.

Sidst redigeret af namishtiwari; 01-25-2008 på 09:32 AM..
  #2 (permalink)  
Old 01-25-2008
V3l0 V3l0 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Location: Belgien & Frankrig
Stillinger: 70
Hej,

Først, når du vælger "* log *", du ikke har for at vælge "*. log *" beacause de er allerede i det første valg!

Andet, hvorfor "røre" den fil, før du sletter den?

Tredje, dit script vil blive runnig med "ude af stand til at fjerne fil xxx" beacause af kommandoen "rm-f $ filestodelete", der vil slette alle filer udvalgt af "for filer i (* log * | *. log *)"

Så jeg foreslå dig script:
Code:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
  #3 (permalink)  
Old 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Aug 2007
Beliggenhed: Bangalore
Posts: 377
Citat:
Oprindeligt Indsendt af V3l0 View Post
Hej,

Først, når du vælger "* log *", du ikke har for at vælge "*. log *" beacause de er allerede i det første valg!

Andet, hvorfor "røre" den fil, før du sletter den?

Tredje, dit script vil blive runnig med "ude af stand til at fjerne fil xxx" beacause af kommandoen "rm-f $ filestodelete", der vil slette alle filer udvalgt af "for filer i (* log * | *. log *)"

Så jeg foreslå dig script:
Code:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
du gav mig god suggestions.Thanks ..

Jeg er nødt til at røre den fil, fordi vi har nogle processer, der kører, at behovet for at vælge at tom fil ellers er vi nødt til at genstarte aaplication igen, hvis jeg slettet filen uden at røre it.cp vil unødigt øge størrelsen.
  #4 (permalink)  
Old 01-25-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Beliggenhed: 45.48-73.63
Posts: 1.428
Citat:
Oprindeligt Indsendt af namishtiwari View Post
Code:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
Jeg er nødt til at røre den fil, fordi vi har nogle processer, der kører, at behovet for at vælge at tom fil ellers er vi nødt til at genstarte aaplication igen, hvis jeg slettet filen uden at røre it.cp vil unødigt øge størrelsen.
Hvad med at flytte filen og røre en ny:
Code:
for file in `ls *log*`
do
    mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
  #5 (permalink)  
Old 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Aug 2007
Beliggenhed: Bangalore
Posts: 377
Tak for alle dine svar.

men jeg har et problem her - mit script er som denne --

Code:
BackupLocation="$OPTARG"
                if [[ $BackupLocation != *backup ]]; then
                        echo "Appending backup subdirectories"
                        BackupLocation=$BackupLocation/backup
                        mkdir -p $BackupLocation >/dev/null 2>&1
                        if [[ $? != 0 ]];then
                        echo "First Create The Directory And Then Take backup"
                        fi
                        cd $FileLocation
                        pwd
                        cp -R $FilesToDelete $BackupLocation
                       list=$(ls *log*)
                        for files in $list
                        do
                             rm -f $files
                          touch $files.$(date +%a)
                                                 done
                else
                        mkdir -p $BackupLocation >/dev/null 2>&1
                        cp -R $FilesToDelete $BackupLocation
                        for files in $list
                        do
                          rm -f $files
                          touch $files.$(date +%a)
                          
                        done
                if [[ ! -d $BackupLocation ]]; then
                echo "Unable to make backup directory: $BackupLocation"
                        if [[ $IsCronJob -eq 1 ]]; then
                          SendMiddleTierCleanMail "Middletierclean error message" $mt_clean_errfile
                        fi
her vil det berøre filen igen og igen, og tilføjer dagen efter filnavnet igen i lighed->
ansrpt26529.log.Fri.Fri.Fri.Fri
men jeg vil ikke have det sådan.
Jeg er nødt til at tage backup af file.then røre det og slette filen.
Det mønstertilpasning til de filer der skal slettes, er
list \u003d $ (ls * log *)
det er at vælge alle de filer ansrpt26529.log.Fri.Fri.Fri.Fri som dette, men jeg ønsker ikke, at det på denne måde kunne det kun ansrpt26529.log.Fri.
mønstertilpasning kan være anderledes her, så giv mig nogle forslag til at løse dette problem.

Sidst redigeret af namishtiwari; 01-25-2008 på 12:41 PM..
  #6 (permalink)  
Old 01-25-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Beliggenhed: 45.48-73.63
Posts: 1.428
Hvad med
Code:
                       
list=$(ls *log.???)
for files in $list
do
    rm -f $files
    touch `echo $files | sed 's [^.]*$  '``date +%a`
done

Sidst redigeret af danmero; 01-25-2008 på 01:05 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 11:27 PM.


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