The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Crea Anno directory, sottodirectory e data del file di archivio madhunk UNIX for Dummies Domande & Risposte 2 12-13-2007 11:25 AM
Specifica una data precedente, come data di inizio di script di shell ritzwan0 Shell scripting e di programmazione 2 09-25-2006 06:58 PM
Directory creare data Bab00shka UNIX for Dummies Domande & Risposte 2 06-29-2005 11:42 AM
creare la directory di nome data corrente flowrats UNIX for Dummies Domande & Risposte 2 07-31-2002 12:26 AM
Come trovare precedente la data e l'arrivo data arunava_maity UNIX for Dummies Domande & Risposte 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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 11-18-2007
sridhusha sridhusha is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2007
Interventi: 16
desidera creare la directory con il precedente la data

Ho bisogno di aiuto per completare il seguente script:

Date1 \u003d `date" +% d "`

# Date2 \u003d `expr $ date1 - 1`

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

DATE4 \u003d `date" +% a "`

if [$ \u003d DATE4 lunedì], quindi

Date2 \u003d `expr $ date1 - 3»

altro

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 "dir creato"

$ mv *. log DATE3

echo "log spostato a $ DATE3 cartella"



Questo script crea una directory con il giorno precedente la data.


insieme con lo script qui sopra uscita, ho bisogno come creare elenchi di fine mese che significa 30a o 31a aggiornati. se supponiamo che la data è il 1 ° di ogni mese, questo script non creare directory della precedente data che è il 30 o 31.

Si prega di alcuni corpo mi aiuta a completare lo script di cui sopra.

Gradirei il vostro aiuto.

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

Iscriviti Data: novembre 2007
Interventi: 165
Aha - data aritmetica.
Si potrebbe creare un array con 28/29/30/31 giorni lookup per i mesi e leapyear calcoli.

Una volta ho scritto un programma C chiamato timecalc. Qui si tratta, se è di alcuna utilità:
Codice:
/*
 * 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");
}
Tutte le usuali clausole di esclusione della responsabilità, non riconosce alcuna garanzia, e quindi su applica!

In alternativa, si potrebbe cercare di fare qualche uso intelligente delle "CAL" (calendario) programma.
  #3 (permalink)  
Old 11-18-2007
Franklin52 Franklin52 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2007
Messaggi: 4.309
Controlla la pagina man di data, se il d-o - la data è suported puoi fare qualcosa del tipo:

data - data \u003d'1 giorno fa '

Saluti
  #4 (permalink)  
Old 11-18-2007
sandy0077's Avatar
sandy0077 sandy0077 is offline
Utente Registrato
  
 

Join Date: Aug 2007
Localizzazione: Regno Unito
Interventi: 10
è possibile ottenere il giorno precedente la data con il seguente comando:

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


Prova il seguente link:

Come ieri DATA
  #5 (permalink)  
Old 11-18-2007
sandy0077's Avatar
sandy0077 sandy0077 is offline
Utente Registrato
  
 

Join Date: Aug 2007
Localizzazione: Regno Unito
Interventi: 10
Post

Salve,

Utilizzare il seguente comando per ottenere il giorno precedente la data del giorno.

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

Iscriviti Data: Sep 2007
Interventi: 16
desidera creare la directory con il precedente la data

Grazie Sandy .... il suo lavoro.

ma io non sono la comprensione di quanto è TZ CST \u003d 24, non ho mai visto nella pagina di manuale Data anche.

Grazie ancora una volta.

Saluti,
SRdhar.
  #7 (permalink)  
Old 11-19-2007
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: ottobre 2003
Ubicazione: -31.96,115.84
Messaggi: 1.409
Il fuso orario "trucco" è inattendibile. Dai un'occhiata alle FAQ.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 07:33 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0