Comandi da terminale: Salvare un file "nome_n+1"

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda Lapa » lunedì 13 marzo 2017, 17:07

Salve a tutti,

Ho una webcam collegata ad un sensore di luminosità, scatta una foto ogni 10 minuti solo se c'è luce. Qual'è il comando da terminale per salvare il file .jpg in automatico in una cartella con n° progressivo? Mi spiego meglio se l'ultima foto è stata salvata con nome "foto0023" qual è l'istruzione per far sì che la al successiva foto sia nominata "foto0024"? Cioè foto0023+0001?

Grazie per l'attenzione e per l'aiuto

Saluti

LaPa
Lubuntu 16.04 LTS su un antichissimo netbook Asus eee PC 900 e funziona!!! - Raspbian su Raspberry Pi per un paio di progettini e per il tentativo di imparare un po' di Python - Sto tentando di mettere Ubuntu su Lenovo Ideapad 100S
Avatar utente
Lapa
Prode Principiante
 
Messaggi: 171
Iscrizione: dicembre 2009

Re: Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda thece » martedì 14 marzo 2017, 11:10

:ciao:

Lapa Immagine ha scritto:Qual'è il comando da terminale per salvare il file .jpg in automatico in una cartella con n° progressivo?

Non esiste alcun comando del genere. Occorre costuirsi uno script che vada a salvare il file con il nome opportuno.

Tempo fa avevo scritto questo scriptino

Codice: Seleziona tutto
#!/bin/bash

# Crea un file con pattern $BASE_PATH/$FILE_PREFIX$FILE_NUMBER$FILE_EXTENSION (Es: /temp/SOMETHING00001.TXT)

BASE_PATH="/temp"
FILE_PREFIX="SOMETHING"
FILE_NUMBER="1"
FILE_EXTENSION=".TXT"
FILE_NAME=""

if [[ ! -d "$BASE_PATH" ]]; then
        echo "[ERR] Directory '$BASE_PATH' doesn't exists"
        exit 0
fi

FILE_NUMBER=$(ls -1rv $BASE_PATH/$FILE_PREFIX*$FILE_EXTENSION 2> /dev/null | head -n 1 | grep -o '[[:digit:]]*')
FILE_NUMBER=$(($FILE_NUMBER + 1))
FILE_NAME="$(printf "%s%05d%s" $FILE_PREFIX $FILE_NUMBER $FILE_EXTENSION)"

# Parte da cambiare ... qui esegue il comando touch
touch "$BASE_PATH/$FILE_NAME"

exit 0
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 6908
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda Lapa » venerdì 17 marzo 2017, 0:01

Ho cambiato il codice così per adattarlo al mio caso, va bene?

Codice: Seleziona tutto
#!/bin/bash

# Crea un file con pattern $BASE_PATH/$FILE_PREFIX$FILE_NUMBER$FILE_EXTENSION (Es: /temp/SOMETHING00001.TXT)

BASE_PATH="/mnt/usbhd/PhotoOfPlants"
FILE_PREFIX="Foto"
FILE_NUMBER="1"
FILE_EXTENSION=".jpg"
FILE_NAME=""

if [[ ! -d "$BASE_PATH" ]]; then
        echo "[ERR] Directory '$BASE_PATH' doesn't exists"
        exit 0
fi

FILE_NUMBER=$(ls -1rv $BASE_PATH/$FILE_PREFIX*$FILE_EXTENSION 2> /dev/null | head -n 1 | grep -o '[[:digit:]]*')
FILE_NUMBER=$(($FILE_NUMBER + 1))
FILE_NAME="$(printf "%s%05d%s" $FILE_PREFIX $FILE_NUMBER $FILE_EXTENSION)"

# Parte da cambiare ... qui esegue il comando touch
touch "$BASE_PATH/$FILE_NAME"

exit 0



però io dovrei inserire tutte queste istruzioni in un comando su terminale e non ho capito come fare, il comando è il seguente:

raspistill -o "IlCodiceSuggeritoDaTe"

Come faccio ad inserirlo nel comando?

Grazie

LaPa
Lubuntu 16.04 LTS su un antichissimo netbook Asus eee PC 900 e funziona!!! - Raspbian su Raspberry Pi per un paio di progettini e per il tentativo di imparare un po' di Python - Sto tentando di mettere Ubuntu su Lenovo Ideapad 100S
Avatar utente
Lapa
Prode Principiante
 
Messaggi: 171
Iscrizione: dicembre 2009

Re: Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda thece » venerdì 17 marzo 2017, 9:21

Lapa ha scritto:però io dovrei inserire tutte queste istruzioni in un comando su terminale e non ho capito come fare, il comando è il seguente:

raspistill -o "IlCodiceSuggeritoDaTe"

Come faccio ad inserirlo nel comando?

Non devi inserire lo script nel comando, devi fare l'esatto contrario: inserire il comando nello script

Codice: Seleziona tutto
#!/bin/bash

# Crea un file con pattern $BASE_PATH/$FILE_PREFIX$FILE_NUMBER$FILE_EXTENSION (Es: /temp/SOMETHING00001.TXT)

BASE_PATH="/mnt/usbhd/PhotoOfPlants"
FILE_PREFIX="Foto"
FILE_NUMBER="1"
FILE_EXTENSION=".jpg"
FILE_NAME=""

if [[ ! -d "$BASE_PATH" ]]; then
      echo "[ERR] Directory '$BASE_PATH' doesn't exists"
      exit 0
fi

FILE_NUMBER=$(ls -1rv $BASE_PATH/$FILE_PREFIX*$FILE_EXTENSION 2> /dev/null | head -n 1 | grep -o '[[:digit:]]*')
FILE_NUMBER=$(($FILE_NUMBER + 1))
FILE_NAME="$(printf "%s%05d%s" $FILE_PREFIX $FILE_NUMBER $FILE_EXTENSION)"

raspistill -o "$BASE_PATH/$FILE_NAME"

exit 0

Poi devi rendere eseguibile lo script

Codice: Seleziona tutto
chmod +x SCRIPT.sh

Quindi richiamare lo script per scattare le foto con la Raspicam

Codice: Seleziona tutto
./SCRIPT.sh
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 6908
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda Lapa » venerdì 17 marzo 2017, 12:29

Ancora non ci sono perché quel comando è all'interno di uno script Phython.
Lubuntu 16.04 LTS su un antichissimo netbook Asus eee PC 900 e funziona!!! - Raspbian su Raspberry Pi per un paio di progettini e per il tentativo di imparare un po' di Python - Sto tentando di mettere Ubuntu su Lenovo Ideapad 100S
Avatar utente
Lapa
Prode Principiante
 
Messaggi: 171
Iscrizione: dicembre 2009

Re: Comandi da terminale: Salvare un file "nome_n+1"

Messaggioda thece » venerdì 17 marzo 2017, 12:31

Lapa Immagine ha scritto:Ancora non ci sono perché quel comando è all'interno di uno script Phython.

Allora molto probabilmente non hai bisogno del mio script. Devi reimplementare la logica del mio script all'interno dello script Python.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 6908
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 4 ospiti