[Risolto] Comandi da terminale: Salvare un file "nome_n+1"

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13164
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

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

Messaggio 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"
Ultima modifica di thece il giovedì 27 aprile 2017, 17:03, modificato 1 volta in totale.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

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

Messaggio da UbuNuovo »

Non avevo letto l'intervento di rai. :muro:
Salva l'Ucraina! 🇺🇦
Avatar utente
Lapa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 389
Iscrizione: mercoledì 30 dicembre 2009, 17:01

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

Messaggio 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
Eterno imbranato su Ubuntu Linux e .... in tantissime altre cose :D
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13164
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

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

Messaggio 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
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2886
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

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

Messaggio 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
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13164
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

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

Messaggio 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
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2886
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

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

Messaggio 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
Avatar utente
Lapa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 389
Iscrizione: mercoledì 30 dicembre 2009, 17:01

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

Messaggio 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
Eterno imbranato su Ubuntu Linux e .... in tantissime altre cose :D
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti