Pagina 2 di 2

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

Inviato: giovedì 27 aprile 2017, 14:31
da thece
rai [url=http://forum.ubuntu-it.org/viewtopic.php?p=4977574#p4977574][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: oppure, invece di stare a cancellare tutti gli zero iniziali si può imporre di interpretare il numero in base decimale
Non sapevo di questa possibilità di casting. Bello, come soluzione mi piace di più del "sed"

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

Inviato: giovedì 27 aprile 2017, 14:37
da UbuNuovo
Non avevo letto l'intervento di rai. :muro:

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

Inviato: venerdì 28 aprile 2017, 17:00
da Lapa

Ciao grazie per la correzione sembra funzionare: salva anche oltre l'ottava foto ma mi dà un errore su terminale quando lancio lo script: /home/pi/Desktop/ScattaFotoPianta1.sh: 12: /home/pi/Desktop/ScattaFotoPianta1.sh: [[: not found

Grazie

Saluti

questo è lo script che ho usato:

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/FotoDiPiante"
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=$(echo $FILE_NUMBER | sed 's/^0*//')
FILE_NUMBER=$(($FILE_NUMBER + 1))
FILE_NAME="$(printf "%s%05d%s" $FILE_PREFIX $FILE_NUMBER $FILE_EXTENSION)"



raspistill -sh 50 -awb sun -br 50 -sa 50 -w 2542 -h 1944 -a 1036 -ae +40+40 -o "$BASE_PATH/$FILE_NAME"

exit 0

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

Inviato: venerdì 28 aprile 2017, 17:19
da thece
A meno del comando raspistill (*), lo script è corretto.

Posta l'output di

Codice: Seleziona tutto

ls -l /home/pi/Desktop/ScattaFotoPianta1.sh

(*) che non ho e che quindi ho sostituito con touch

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

Inviato: venerdì 28 aprile 2017, 23:45
da rai
Leggendo l'errore che Lapa ha postato, si direbbe che la shell in cui lo script viene eseguito non sia bash e perciò il comando [[ non viene riconosciuto.

Dovrebbe bastare sostituire nel test al rigo 12 la doppia quadra con una singola, così:

Codice: Seleziona tutto

if [ ! -d "$BASE_PATH" ]; then

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

Inviato: sabato 29 aprile 2017, 0:20
da thece
rai [url=http://forum.ubuntu-it.org/viewtopic.php?p=4978049#p4978049][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Leggendo l'errore che Lapa ha postato, si direbbe che la shell in cui lo script viene eseguito non sia bash e perciò il comando [[ non viene riconosciuto.
Si, potrebbe essere ma allora le mie poche conoscenze di scripting non mi spiegherebbero come mai lo script non venga interpretato con bash

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

Inviato: sabato 29 aprile 2017, 0:40
da rai
thece ha scritto:Si, potrebbe essere ma allora le mie poche conoscenze di scripting non mi spiegherebbero come mai lo script non venga interpretato con bash
quasi sicuramente nello script python da cui lo script "bash" viene invocato il subprocesso viene eseguito in una shell /bin/sh
https://docs.python.org/3/library/subprocess.html ha scritto:On POSIX with shell=True, the shell defaults to /bin/sh

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

Inviato: sabato 29 aprile 2017, 15:17
da Lapa
purtroppo non ho compreso completamente il vostro colloquio (tra Thece e Rai) ma ho eliminato le doppie parentesi quadre e ho lanciato il file: tutto ok, fa la foto oltre le 8 e non mi dà errore nel terminale

:) :) :)

Grazie a tutti voi, metto risolto

Saluti LaPa