[Risolto] Inserire una variabile in un percorso file

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
fabiopig
Prode Principiante
Messaggi: 16
Iscrizione: giovedì 29 luglio 2010, 13:07

[Risolto] Inserire una variabile in un percorso file

Messaggio da fabiopig »

Ciao a tutti e ben ritrovati,
ho creato uno script per spostare il contenuto di una directory locale su un repository, via FTP usando lftp con il seguente comando:
lftp -e 'mirror -I '*gz' -c -R /var/log/pippo/1 "/home/Log/Anno 2021/1"; bye' -u user,pass ftp.ftp.ciccio

il mio intento è sostituire nel percorso di destinazione /Anno 2021 con la variabile date +"%Y", quindi una cosa similare a questa:

lftp -e 'mirror -I '*gz' -c -R /var/log/pippo/1 "/home/Log/date +"%Y"/1"; bye' -u user,pass ftp.ftp.ciccio

non riesco però a concatenarlo sullo script bash.

Grazie a tutti.
Fabio
Ultima modifica di fabiopig il martedì 1 febbraio 2022, 12:48, modificato 2 volte in totale.
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Inserire una variabile in un percorso file

Messaggio da nuzzopippo »

fabiopig ha scritto:
giovedì 2 settembre 2021, 9:38
il mio intento è sostituire nel percorso di destinazione /Anno 2021 con la variabile date +"%Y", quindi una cosa similare a questa:
lftp -e 'mirror -I '*gz' -c -R /var/log/pippo/1 "/home/Log/date +"%Y"/1"; bye' -u user,pass ftp.ftp.ciccio
non riesco però a concatenarlo sullo script bash.

Codice: Seleziona tutto

NzP:~$ Y="Anno 2021"
NzP:~$ echo "/var/log/pippo/Log/$Y/1"
/var/log/pippo/Log/Anno 2021/1
NzP:~$ 
Fatti non foste a viver come bruti ...
fabiopig
Prode Principiante
Messaggi: 16
Iscrizione: giovedì 29 luglio 2010, 13:07

Re: Inserire una variabile in un percorso file

Messaggio da fabiopig »

più che altro mi servirebbe una cosa simile:

Y=date +"%Y"
echo "/var/log/pippo/Log/$Y/1"

In modo che non devo ricordare ogni anno di modificare manualmente il percorso
ma non funziona
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Inserire una variabile in un percorso file

Messaggio da nuzzopippo »

Codice: Seleziona tutto

NzP:~$ anno=$(date +%y)
NzP:~$ echo "/var/log/pippo/Log/$anno/1"
/var/log/pippo/Log/21/1
NzP:~$ anno=$(date +%Y)
NzP:~$ echo "/var/log/pippo/Log/$anno/1"
/var/log/pippo/Log/2021/1
NzP:~$ 
Fatti non foste a viver come bruti ...
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Inserire una variabile in un percorso file

Messaggio da vaeVictis »

Usa il tag per il codice. Così, non si capisce un tubo.
Grazie.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
fabiopig
Prode Principiante
Messaggi: 16
Iscrizione: giovedì 29 luglio 2010, 13:07

Re: Inserire una variabile in un percorso file

Messaggio da fabiopig »

vaeVictis ha scritto:
giovedì 2 settembre 2021, 12:50
Usa il tag per il codice. Così, non si capisce un tubo.
Grazie.
Scusa non sono ancora pratico... cosa sarebbe il tag per il codice?
fabiopig
Prode Principiante
Messaggi: 16
Iscrizione: giovedì 29 luglio 2010, 13:07

Re: Inserire una variabile in un percorso file

Messaggio da fabiopig »

alla fine ho risolto in questo modo:
/var/log/pippo/Log/`date +%Y`/1
inserito direttamente nel bash

Grazie cmq a tutti.
Avatar utente
trekfan1
Moderatore Globale
Moderatore Globale
Messaggi: 23402
Iscrizione: domenica 21 maggio 2006, 10:51
Desktop: Gnome
Distribuzione: Ubuntu 23.10 e 24.04 (dev)
Sesso: Maschile
Località: Formigine (MO) | Accecante Asceta

Re: [RISOLTO] Inserire una variabile in un percorso file

Messaggio da trekfan1 »

Il [Risolto] va messo evitando di scriverlo tutto maiuscolo, correggi, grazie :)
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Inserire una variabile in un percorso file

Messaggio da vaeVictis »

fabiopig ha scritto:
giovedì 2 settembre 2021, 13:54
vaeVictis ha scritto:
giovedì 2 settembre 2021, 12:50
Usa il tag per il codice. Così, non si capisce un tubo.
Grazie.
Scusa non sono ancora pratico... cosa sarebbe il tag per il codice?
Il codice va messo internamente al riquadro per il codice, come vedi nel primo messaggio di risposta di nuzzipippo. O come vedi qui sotto

Codice: Seleziona tutto

Esempio di come va postato il codice
Trovi il tag per il codice nell'editor per scrivere i messaggi, è il bottone con il disegno </> posto sopra al riquadro in cui scrivi il testo del messaggio.

Una volta che hai pigiato tale bottone, ti compaiono nel messaggio due tag:
[ code]DEVI SCRIVERE IL CODICE QUI[/code]
(Lo spazio all'interno del primo tag, quello prima della parola code, l'ho inserito io altrimenti non si sarebbe visto).

Puoi anche scrivere a mano i due tag, non cambia.
Puoi anche evidenziare il testo del codice che hai scritto e poi pigiare sul bottone che ti ho indicato sopra.

Se non è chiaro chiedi pure.

Ciò detto, qui:

Codice: Seleziona tutto

/var/log/pippo/Log/`date +%Y`/1
metti il comando che espandi tra doppie virgole. In generale è una buona pratica. In questo caso non hai spazi nel risultato del comando, ma potresti averli in generale.
Inoltre, usa la versione col dollaro per l'espansione del comando, perché quella con gli apici rovesciati è deprecata.
Quindi:

Codice: Seleziona tutto

/var/log/pippo/Log/"$(date +%Y)"/1
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: nik1404 e 15 ospiti