![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
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.. |
|
||||
|
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
|
|
||||
|
Citat:
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. |
|
||||
|
Citat:
Code:
for file in `ls *log*`
do
mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
|
|
||||
|
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
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.. |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|