Script per creare nome file

Non importa se ti serve una mano per partire o se vuoi un consiglio avanzato: gli utenti "del Pinguino" hanno una risposta per ogni necessità.
Regole del forum
Rispondi
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Script per creare nome file

Messaggio da dante5351 »

Buonasera.
Vorrei creare uno script (es pr.sh) che mi avvii il terminale, dia il comando "sudo rtcwake -m show -l" (senza virgolette), e poi prenda l'output di questo comando e lo trasformi nel nome di un'immagine che ora e' poppi.png, in modo da avere come risultato ~/Scrivania/output comando da terminale.png.
Mi ci gioco i baffi che e' possibile, ma io non sono in grado di scriverlo.
Qualcuno può aiutarmi?
Grazie
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Script per creare nome file

Messaggio da PippoDJ »

dante5351 ha scritto:Vorrei creare uno script (es pr.sh) che mi avvii il terminale, dia il comando "sudo rtcwake -m show -l" (senza virgolette), e poi prenda l'output di questo comando e lo trasformi nel nome di un'immagine che ora e' poppi.png, in modo da avere come risultato ~/Scrivania/output comando da terminale.png.
Mi ci gioco i baffi che e' possibile, ma io non sono in grado di scriverlo.
Se ho capito bene cosa vuoi fare e ammesso che poppi.png sia sulla scrivania, il comando da inserire in pr.sh dovrebbe essere qualcosa del tipo:

Codice: Seleziona tutto

cp ~/Scrivania/poppi.png "~/Scrivania/$(sudo rtcwake -m show -l).png"
Spero di averti salvato i baffi. :)
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Script per creare nome file

Messaggio da dante5351 »

Benritrovato PippoDJ, e sono sicuro che col tuo aiuto non dovro' rinunciare ai miei favoriti. Infatti hai capito benissimo: voglio crearmi un promemoria al momento in cui imposto lo standby/resume del pc.

Pero' io devo sempre capire, prima.
Nel tuo codice, quel $(sudo rtcwake -m show -l) sta' a significare: il risultato del comando sudo rtcwake -m show -l? Quindi quel $ e' quello del terminale? Mi pare di si, ma gradirei una conferma.

Ho provato a lanciare lo script da terminale, aggiornando ai dati reali, col risultato:
dan@dan ~ $ cp ~/Video/Xreg/Risveglio-programmato "~/Scrivania/$(sudo rtcwake -m show -l).png"
cp: impossibile creare il file regolare "~/Scrivania/alarm: on Wed Dec 2 00:34:00 2015.png": File o directory non esistente.

Il "alarm: on Wed Dec 2 00:34:00 2015" e' il dato corretto di output del comando e quelli che sembrano trattini sono tilde.
Pero' da' lo stesso l'errore.
E, tanto per dirla tutta, voglio ottenere che quell'immagine che creo adesso col nome Risveglio-programmato, abbia il nome alarm: on Wed Dec 2 00:34:00 2015, ma questo l'hai capito.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 4672
Iscritto il: lun gen 26, 2015 10:13 am

Re: Script per creare nome file

Messaggio da CUB3 »

Prova così:

Codice: Seleziona tutto

cp ~/Scrivania/poppi.png ~/Scrivania/"$(sudo rtcwake -m show -l)".png
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Script per creare nome file

Messaggio da dante5351 »

Benritrovato CUB3.
Lanciando:
dan@dan ~ $ cp ~/Video/Xreg/Risveglio-programmato ~/Scrivania/"$(sudo rtcwake -m show -l)".png
Funziona a meta', nel senso che crea sulla scrivania il file con il titolo esatto, pero' per vedere l'immagine bisogna cliccarci sopra e apprire gThumb, cioe' il visualizzatore d'immagini
Lanciando:
dan@dan ~ $ cp ~/Video/Xreg/Risveglio-programmato ~/Scrivania/"$(sudo rtcwake -m show -l)"
Dovrebbe essere ok, nel senso che crea l'immagine con la scritta allarm:off, ma il resume e' scaduto 15 minuti fa, e quando rtcwake fa il resume, azzera l''impostazione.
Adesso devo lasciare buono buono il pc a registrare, domani controllero', ma sono sicuro che la vostra collaborazione ha funzionato ancora.
Fate una coppia imbattibile :clap :clap
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 4672
Iscritto il: lun gen 26, 2015 10:13 am

Re: Script per creare nome file

Messaggio da CUB3 »

Grazie dante5351.

Per il problema dell'immagine mi sembra di capire che quando questa viene creata, non vedi l'anteprima ma vedi l'icona generica dei file immagine. Se è così è sufficiente che tu clicchi su un punto vuoto del Desktop e poi prema F5.
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Script per creare nome file

Messaggio da dante5351 »

Confermo: il comando
$ cp ~/Video/Xreg/Risveglio-programmato ~/Scrivania/"$(sudo rtcwake -m show -l)" o, per usare i nomi precedenti
$ cp ~/Video/Xreg/poppi ~/Scrivania/"$(sudo rtcwake -m show -l)"
funziona come volevo.
E la ragione per cui non funzionava con .png e' perche' poppi è .jpeg :acch :frustata

Naturalmente, fatta la prova aggiungendo .jpeg, funziona. Un errore da 2a elementare. Sorry

In ultimo cito:
Re: Risvegliare Pc da standby con crontab
Messaggioda PippoDJ » 18/11/2015, 17:44
...Il simbolo "$" ha tantissimi usi diversi a seconda del contesto in cui viene inserito...

In questo caso sta a significare: esegui nel terminale.

Certo che con questi scripts mi si è aperto un mondo, che con Windows restava nascosto, anche se c'era. :grazie
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Script per creare nome file

Messaggio da PippoDJ »

dante5351 ha scritto:In ultimo cito:
Re: Risvegliare Pc da standby con crontab
Messaggioda PippoDJ » 18/11/2015, 17:44
...Il simbolo "$" ha tantissimi usi diversi a seconda del contesto in cui viene inserito...

In questo caso sta a significare: esegui nel terminale.
Non proprio. $( ... ) vuol dire più o meno: "esegui prima il comando che c'è all'interno di $() e rimpiazza tutto il $() con il risultato ottenuto, poi esegui il comando più esterno".

Quindi in pratica tutto quanto viene eseguito in due passaggi:
1o: cp ~/Video/Xreg/Risveglio-programmato ~/Scrivania/"$(sudo rtcwake -m show -l)".jpg
2o: cp ~/Video/Xreg/Risveglio-programmato ~/Scrivania/"alarm: on Wed Dec 2 00:34:00 2015".jpg

E' lo stesso accorgimento che avevi già usato in:
1o: sudo rtcwake -m no -u -t $(date +\%s -d 'tomorrow 12:05')
2o: sudo rtcwake -m no -u -t 1449140700

Ciao, Pippo.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Script per creare nome file

Messaggio da dante5351 »

Continuo a sostenere che dovresti fare il divulgatore scientifico: non hai niente da invidiare a Piero Angela. Da solo non l'avrei neanche sognato.
Ciao Dante
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
Ganondolf
Livello: Disco fisso (9/15)
Livello: Disco fisso (9/15)
Messaggi: 674
Iscritto il: mar gen 28, 2014 10:51 am
Località: Mestre

Re: Script per creare nome file

Messaggio da Ganondolf »

Più in generale, in questo contesto il carettere $ significa "il valore di".
Quindi ad esempio, in uno script $1 significa "il valore del primo argomento", $PATH significa "il valore della variabile PATH", e $(...) significa "il valore dell'espressione contenuta tra parentesti", che implica che tale espressione debba venire valutata, cioè viene eseguita prima del comando che la contiene.
Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio