PDA

Visualizza la versione completa : [script bash] aggiungere la data formattata in una stringa


nik600
18-01-2006, 11:41
ciao

perdonate il titolo poco chiaro

vorrei farmi uno script di backup x un db di mysql, allora attualmente faccio



backup_file=/data/backup/backup.sql
/usr..../mysqldump -u utente --password='pwd' --all-databases > ${backup_file}


vorrei apportare una modifica per cui il file viene creato cosi:

backup_file=/data/backup/aaaammggbackup.sql

ho provato una cosa tipo

backup_file=/data/backup/${date}backup.sql

ma non va.... suggerimenti?

prometeus
18-01-2006, 11:54
risponderei con un "man date" :D

hint:

backup_file=/data/backup/${date +%Y%m%d}backup.sql

nik600
18-01-2006, 12:08
ciao

grazie per la risposta

il problema non tanto come formattare la data, ma come concatenarla alla stringa!

facendo
backup_file=/data/backup/${date +%Y%m%d}backup.sql

bash mi dice:
/data/backup/${date +%Y%m%d}backup.sql: bad substitution

cacao74
18-01-2006, 12:12
date e' un comando, non una semplice stringa/variabile
non si utilizza ${}, ma gli apici inversi


[spedone@slack ~]$ backup_file=/data/backup/`date +%Y%m%d`backup.sql
[spedone@slack ~]$ echo $backup_file
/data/backup/20060118backup.sql

ciao

stai_tranquillo
18-01-2006, 12:16
e ci credo.. bash utilizza il contrassegno ${VAR} per ESPANDERE la variabile VAR... ma quello che tu chiami ad espandere non una variabile bens una espressione..

queste sono le basi dello scripting bash..........

prova ad usare l'apice inverso per isolare l'espressione



backup_file=/data/backup/`exec date +%Y%m%d`backup.sql

oppure

data_formattata=`exec date +%Y%m%d`
backup_file=/data/backup/$data_formattatabackup.sql



il secondo esempio comodo se devi riutilizzare la data.

leggere una buona guida su bash no eh? :D

nik600
18-01-2006, 12:27
vi ringrazio

cacao74
18-01-2006, 12:46
Originariamente inviato da stai_tranquillo


data_formattata=`exec date +%Y%m%d`
backup_file=/data/backup/${data_formattata}backup.sql

... comodo se devi riutilizzare la data.

magari scritto cosi'. :)


leggere una buona guida su bash no eh? :D
ecco... :)

ciao

stai_tranquillo
18-01-2006, 12:51
Originariamente inviato da cacao74
magari scritto cosi'. :)

ecco... :)

ciao

ops, mi sono mangiato le parentesi :D

Loading