![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
| Problem For Loop | The Observer | Shell programmering og Skripting | 2 | 05-28-2008 03:43 |
| loop problem | maskot | Shell programmering og Skripting | 1 | 05-25-2007 05:10 |
| Problemet med for loop / sed? | chiru_h | Shell programmering og Skripting | 2 | 08-27-2006 12:55 |
| loop Problem | dhananjaysk | Shell programmering og Skripting | 3 | 03-31-2006 02:05 |
| Problemet med mens loop | mridula | High Level Programmering | 1 | 12-11-2005 11:44 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
for loop problem
Hei,
Jeg har en katalog kalt logger hvor jeg har loggfiler. Jeg må ta på filen før du sletter den. jeg gjør sånn filestodelete \u003d "*. log * * log *" for filer i $ filestodelete gjøre touch $ filer $ filer. $ (date +% a) rm-f $ filestodelete ferdig touch ikke fungerer her, betyr at det ikke berører filen før du sletter den. De hjelpe meg i dette. Sist endret av namishtiwari; 01-25-2008 på 09:32.. |
|
||||
|
Hallo, Først når du velger "* log *" du ikke har å velge "*. log *" beacause de er allerede i første valg! Sekund, hvorfor "berøre" filen før du sletter den? Tredje skriptet blir runnig med "ikke fjerne filen xxx" beacause av kommandoen "rm-f $ filestodelete" som vil slette alle filene valgte "for filer i (* log * | *. log *)" Så jeg foreslår du skriptet: Code:
list=$(ls *log*)
for file in $list
do
cp $file $file.$(date +%a)
rm -f $file
done
|
|
||||
|
Sitat:
Jeg må berøres fil fordi vi har noen prosesser som kjører som må plukke det tomme filen slik at vi må starte aaplication nytt hvis jeg slettet filen uten å berøre it.cp vil unødvendig øke størrelsen. |
|
||||
|
Sitat:
Code:
for file in `ls *log*`
do
mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
|
|
||||
|
Takk for alle svar. men jeg har et problem her - mine skriptet som dette -- 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 touch filen igjen og igjen og legger dagen etter filnavnet igjen like-> ansrpt26529.log.Fri.Fri.Fri.Fri men jeg vil ikke at det sånn. Jeg trenger å ta sikkerhetskopi av file.then touch den og slette filen. den mønstersamsvar for filene du vil slette er listen \u003d $ (ls * log *) det er å velge alle filene ansrpt26529.log.Fri.Fri.Fri.Fri som dette men jeg vil ikke at det på denne måten kan det være bare ansrpt26529.log.Fri. mønstersamsvar være annerledes her så gi meg noen forslag til å løse dette problemet. Sist endret av namishtiwari; 01-25-2008 på 12:41.. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|