The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Erstellen Jahr Verzeichnis, Datum Unterverzeichnis und die Datei-Archiv madhunk UNIX for Dummies Questions & Answers 2 12-13-2007 11:25 AM
Geben Sie einen früheren Zeitpunkt als Starttermin in Shell-Skript ritzwan0 Shell Programmierung und Scripting 2 09-25-2006 06:58 PM
Verzeichnis erstellen, Datum Bab00shka UNIX for Dummies Questions & Answers 2 06-29-2005 11:42 AM
Verzeichnis mit dem Namen erstellen aktuelle Datum flowrats UNIX for Dummies Questions & Answers 2 07-31-2002 12:26 AM
So finden Sie zurück Datum und Zeitpunkt kommen arunava_maity UNIX for Dummies Questions & Answers 2 05-24-2001 12:41 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-18-2007
sridhusha sridhusha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2007
Beiträge: 16
Verzeichnis erstellen möchten, mit dem früheren Zeitpunkt

Ich benötige Hilfe, um die komplette Skript unter:

Date1 \u003d `date" +% d "`

# Date2 \u003d `expr $ Date1 - 1"

# DATE3 \u003d $ Date2 `date" +% m% y "`

DATE4 \u003d `date" +% a ""

if [$ DATE4 \u003d Montag], dann

Date2 \u003d `expr $ Date1 - 3`

sonst

Date2 \u003d `expr $ Date1 - 1"

fi

cd / data/builds/612hf8/SAS/retail/plan_61/scripts/meserver

DATE3 \u003d $ Date2 `date" +% m% y "`

mkdir $ DATE3

echo "erstellt dir"

mv *. log $ DATE3

echo "-Protokolle in bis zu $ DATE3 Ordner"



Das Skript erstellt das Verzeichnis mit den Vortag Datum.


zusammen mit der Skript-Ausgabe, brauche ich, wie Sie Monatsende Verzeichnisse Das bedeutet, dass der 30. oder 31. Tag. Angenommen, wenn Datum ist der 1. eines Monats, ist dieses Skript nicht schaffen Verzeichnis der früheren Zeitpunkt, ist der 30. oder 31..

Bitte helfen Sie mir einige Stelle, um die Skript.

Ich danken Ihnen für Ihre Unterstützung.

Danke,
Sridhar.
  #2 (permalink)  
Old 11-18-2007
prowla prowla is offline
Read Only
  
 

Join Date: Nov 2007
Beiträge: 165
Aha - Datum arithmetische.
Sie könnte ein Array mit 28/29/30/31 Tage-Lookups für die kommenden Monate und LeapYear Berechnungen.

Ich habe ein C-Programm namens timecalc. Hier ist es, wenn es von Nutzen:
Code:
/*
 * Name:
 *	timecalc.c
 *
 * Purpose:
 *	Time calculations.
 #
 * Usage:
 *	timecalc [+|-]n [seconds|minutes|hours|days|weeks]
 *
 * History:
 *	050713	GZB	Original.
 *
 */

static char *gsVersion="@(#)timecalc.c GZB 050713";

#include <time.h>
#include <stdlib.h>
#include <sys/time.h>

int gbDebug=0;
int gbVerbose=0;
double gfTimeDiff=0;	/* What to change the time by. */
int giTimeDiff=0;	/* What to change the time by. */
int giTimeUnits=1;	/* Time units scaled to seconds. */
char gsDateSep[10]="/";	/* Date separator. */
char gsTimeSep[10]=":";	/* Time separator. */
char gsDtoTSep[10]=" ";	/* Separator between date & time. */


Usage()
{
	printf("usage: timecalc [+|-]n [seconds|minutes|hours|days|weeks]\n");
	exit(1);
}


CommandArgs(argc,argv)
	int argc;
	char **argv;
{
	int i;

	if (gbDebug) printf("CommandArgs()\n");

	for ( i=1; i<argc; i++ )
	{
		if (gbDebug) printf("%d/%d\n", i, argc);

		switch (*argv[i])
		{
			case '+': gfTimeDiff=atof(argv[i]+1); break;
			case '-': gfTimeDiff=-atof(argv[i]+1); break;
			case 's': giTimeUnits=1; break;
			case 'm': giTimeUnits=60; break;
			case 'h': giTimeUnits=60*60; break;
			case 'd': giTimeUnits=60*60*24; break;
			case 'w': giTimeUnits=60*60*24*7; break;
			case 'D': gbDebug=1; break;
			case 'V': gbVerbose=1; break;
			/* case 'T': *gsDateSep='\0'; *gsTimeSep='\0'; break; */
			case 'T': strcpy(gsDateSep,""); strcpy(gsTimeSep,""); break;
			default: Usage(); break;
		}
	}

	/*
	giTimeDiff *= giTimeUnits;
	if (gbDebug) printf( "%d %d\n", giTimeDiff, giTimeUnits);
	*/

	giTimeDiff = (int)(gfTimeDiff * (double)giTimeUnits);
	if (gbDebug) printf( "%d %f %d\n", giTimeDiff, gfTimeDiff, giTimeUnits);
}


PrintTime(tp)
	struct tm *tp;
{
	printf("%04d%s%02d%s%02d%s%02d%s%02d%s%02d",
		tp->tm_year+1900,
		gsDateSep,
		tp->tm_mon+1,
		gsDateSep,
		tp->tm_mday,
		gsDtoTSep,
		tp->tm_hour,
		gsTimeSep,
		tp->tm_min,
		gsTimeSep,
		tp->tm_sec
		);
}


main(argc,argv)
	int argc;
	char **argv;
{
	time_t	t;
	time_t	tnew;
	struct tm *tp;

	t = (time_t)time((time_t *)0);
	if (gbDebug) printf("Seconds since epoch = %d\n", t);

	CommandArgs(argc,argv);

	tnew = t + giTimeDiff;
	if (gbDebug) printf("Seconds adjusted by %d = %d\n", giTimeDiff, tnew);

	if (gbVerbose)
	{
		tp = localtime(&t);
		PrintTime(tp);
		printf("\n");
		/* printf(" -> "); */
	}

	tp = localtime(&tnew);
	PrintTime(tp);
	printf("\n");
}
Alle üblichen Haftungsausschlüsse nicht Gewährleistungen, und so zu gelten!

Alternativ können Sie versuchen, ein paar kluge Nutzung der "CAL" (Kalender-) Programm.
  #3 (permalink)  
Old 11-18-2007
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4322
Überprüfen Sie die man-Seite der Zeitpunkt, wenn die d-oder - Datum unterstützten können Sie so etwas wie:

date - date \u003d "1 Tag"

Grüße
  #4 (permalink)  
Old 11-18-2007
sandy0077's Avatar
sandy0077 sandy0077 is offline
Registrierte Nutzer
  
 

Join Date: Aug 2007
Ort: UK
Beiträge: 10
können Sie die letzten Tages, Datum mit folgenden Befehl ein:

DATE_STAMP \u003d `TZ \u003d CST 24 date +% Y% m% d`


Versuchen Sie den folgenden Link:

Erste gestern DATE
  #5 (permalink)  
Old 11-18-2007
sandy0077's Avatar
sandy0077 sandy0077 is offline
Registrierte Nutzer
  
 

Join Date: Aug 2007
Ort: UK
Beiträge: 10
Post

Hi,

Verwenden Sie den folgenden Befehl, um das Datum des vorherigen Tages.

DATE_STAMP \u003d `TZ \u003d CST 24 date +% Y% m% d`
  #6 (permalink)  
Old 11-19-2007
sridhusha sridhusha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2007
Beiträge: 16
Verzeichnis erstellen möchten, mit dem früheren Zeitpunkt

Dank Sandy .... ihre Arbeitsweise.

aber ich bin mir nicht zu verstehen, was ist TZ \u003d CST +24, habe ich nie gesehen in der Date-Seite auch.

Vielen Dank noch einmal.

Grüße,
SRdhar.
  #7 (permalink)  
Old 11-19-2007
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderator
  
 

Join Date: Oct 2003
Lage: -31.96,115.84
Posts: 1409
Die Zeit-Zone "Trick" ist unzuverlässig. Werfen Sie einen Blick auf die FAQs.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 11:01 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0