Messaggi: 238
Discussioni: 65
Registrato: 19 Feb 2020
(23/10/2023, 13:16)m3nhir Ha scritto: [quote pid="18555" dateline="1698003607"]
Sargon6
Codice:
./elaboraLista03.txt: riga 8: -4: expressione di sottostringa < 0
Se nessuno ha un'idea su cos'hanno che non va questi 3 script, mi sa che mi dovrò accontentare della soluzione con script intermedio.
A cosa serve il parametro "-4"? potrebbe essere la causa dell'errore (forse non viene correttamente interpretato)
[/quote]
La riga 8 contiene l'istruzione
Codice:
OUT='elaborato-'${IN::-4}'-crop'${IN:(-4)} # Imposta nome ed estensione del file audiovisivo elaborato
L'istruzione ${IN::-4} equivale al contenuto della variabile IN meno gli ultimi 4 caratteri.
L'istruzione ${IN:(-4)} equivale ai soli 4 caratteri più a destra contenuti nella variabile IN.
Messaggi: 238
Discussioni: 65
Registrato: 19 Feb 2020
25/10/2023, 22:21
(Questo messaggio è stato modificato l'ultima volta il: 25/10/2023, 22:30 da Sargon6.)
Risolto con ciclo
for!
Ho preso ispirazione dal sito
http://www.pluto.it/files/ildp/guide/abs/loops.html
ed ho ideato questo script:
Codice:
#!/bin/bash
# ./elaboraElenco.txt # Comando da impartire per avviare lo script da terminale
for IN in 20231005_224603.mp4 20231012_223758.mp4 20231019_230246.mp4 # Lista files multimediali da elaborare
do
OUT='prefisso-'${IN::-4}'-suffisso'${IN:(-4)} # Imposta nome ed estensione del file audiovisivo elaborato
Y=$((480+0)) # Imposta l'altezza del file audiovisivo elaborato
X=$((Y*3/2)) # Imposta la larghezza del file audiovisivo elaborato
X1=300 # Imposta la distanza dal lato sinistro
Y1=100 # Imposta la distanza dal lato superiore
COMANDO='ffmpeg -i '$IN' -vf crop='$X':'$Y':'$X1':'$X2' -acodec copy '$OUT # Costruisce il comando
$COMANDO # Impartisce il comando
done
L'elenco di files multimediali da elaborare, è trascritto nella stessa riga ove inizia il ciclo
for; in questo modo, non occorre né predisporre un ulteriore file di testo che contenga l'elenco dei files multimediali da elaborare, né creare un ulteriore file di testo eseguibile che contenga l'elenco dei comandi da eseguire.