Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2006, 10:33   #1
]DaLcA[
Senior Member
 
L'Avatar di ]DaLcA[
 
Iscritto dal: Jun 2004
Città: Isola di Toscana in Lombardia
Messaggi: 660
Errore "find: missing argument to `-exec' ", perchè?

Ciao a tutti Dopo innumerevoli prove e ricerche in rete non sono riuscito a risolvere un problema. Devo scrivere un grosso (almeno per me) script, che dopo alcune modifiche ha deciso di non funzionare più. Sono riuscito ad identificare questo come l'errore che è a causa di tutto. A grandi linee, devo salvare in una variabile il codice che devo eseguire, ma quando faccio delle prove sulla console mi dà l'errore:

Codice:
 find: missing argument to `-exec'
Per riprodurre l'errore creo una variabile contentente il comando che devo eseguire, tipo:

VAR="find /tmp -exec du -sb {} \;"

e poi cerco di eseguire il codice al sul interno con

$VAR

che mi restituisce l'errore. Ho provato con l'escaping del carattere \ e di {}, ma senza successo. Dall'alto della mia inesperienza credo che sia colpa del "-" prima dell'exec, infatti se in qualche modo lo tolgo mi dà un errore simile per l'opzione "-sb" del du, e, se tolgo questa opzione, tutto funziona (non come dovrebbe, ma funziona senza errori).

Eseguendo solo

Codice:
find /tmp -exec du -sb {} \;
(senza metterlo in una variabile) non si presentano errori e il comando funziona come dovrebbe. Ora, dove sbaglio? Non riesco proprio a capire
]DaLcA[ è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2006, 21:28   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
[OT] nell'altro topic che avevi aperto non mi hai risposto nulla
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2006, 21:49   #3
PiloZ
Senior Member
 
L'Avatar di PiloZ
 
Iscritto dal: Dec 2001
Città: /dev/rotfl
Messaggi: 7276
la butto li rischiando di dire una cavolata e fare na figuraccia, ma non essendo a casa non posso provare:
togli i 2 "" e metti 2 ``

fammi sapere se mi devo at are
ciao
__________________
....::::fluxbox è talmente veloce che quando digito startx, il WM aspetta che il server Xorg lo raggiunga - PiloZ::::...
PiloZ è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2006, 00:18   #4
Scoperchiatore
Senior Member
 
L'Avatar di Scoperchiatore
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 1944
hai provato anche a eseguire invece di
$VAR
con
"$VAR"

sembra un problema di escaping dei caratteri, dato che l'argomento in linea teorica c'è...
__________________
"Oggi è una di quelle giornate in cui il sole sorge veramente per umiliarti" Chuck Palahniuk

Io c'ero
Scoperchiatore è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2006, 09:31   #5
]DaLcA[
Senior Member
 
L'Avatar di ]DaLcA[
 
Iscritto dal: Jun 2004
Città: Isola di Toscana in Lombardia
Messaggi: 660
Quote:
Originariamente inviato da kingv
[OT] nell'altro topic che avevi aperto non mi hai risposto nulla
Ora ho risposto

Quote:
Originariamente inviato da PiloZ
la butto li rischiando di dire una cavolata e fare na figuraccia, ma non essendo a casa non posso provare:
togli i 2 "" e metti 2 ``

fammi sapere se mi devo at are
ciao
Con gli apici inversi si ottiene lo stesso risultato, però il concetto non è sbagliato

Ti sei salvato dall'attapiramento

Quote:
Originariamente inviato da Scoperchiatore
hai provato anche a eseguire invece di
$VAR
con
"$VAR"

sembra un problema di escaping dei caratteri, dato che l'argomento in linea teorica c'è...
Ho provato appena adesso e ho ottenuto un altro errore:

Codice:
-bash: find /tmp -exec du -sb {} \;: No such file or directory
Probabilmente perchè vede il tutto come un'unica stringa e non sa cosa fare! Anch'io sono convinto che sia un problema di escaping, solo che tutte le "tecniche " descritte nelle varie guide online non risolvono il problema (che imho non ha senso di esistere perchè è concettualmente corretto)
]DaLcA[ è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2006, 11:39   #6
Scoperchiatore
Senior Member
 
L'Avatar di Scoperchiatore
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 1944
Prova a inizializzare VAR senza apici, e poi a eseguirlo sia con sia senza gli apici.

Mi ricordo che quando ho dovuto fare un tester automatico per un esame all'uni, avevo lo stesso problema con java -classpath... e risolsi con qualche apice in giro
__________________
"Oggi è una di quelle giornate in cui il sole sorge veramente per umiliarti" Chuck Palahniuk

Io c'ero
Scoperchiatore è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2006, 16:55   #7
]DaLcA[
Senior Member
 
L'Avatar di ]DaLcA[
 
Iscritto dal: Jun 2004
Città: Isola di Toscana in Lombardia
Messaggi: 660
Sono riuscito

Ho fatto uno script di prova semplice semplice e ho visto che il seguente codice funzionava:

Codice:
VAR=`find /tmp -exec du -sb {} \;`

"$VAR"
Per il lavoro che devo fare, ho necessità di scremare -- tra le altre cose -- file e cartelle in base alla dimensione. Ho uno script a cui da un altro programma vengono passati i parametri della ricerca; all'inizio avevo pensato di memorizzare in una variabile tutto il codice che doveva seguire il find, quindi il -exec col du e l'awk ma in seguito alla prova effettuata con lo script qui sopra ho deciso di smembrare le variabili che dovevo usare (e che davano problemi) ottenendo le seguente parte di codice (che spero si capisca):

Codice:
if [[ $4 == '' && $5 == '' ]]; then	# se la ricerca non è per dimensione
	RISULTATI=`find $1 $NOME $SUBDIR $DATA $TIPO`
else 
	if [[ $5 == '' ]]; then		# se non è specificata la dimensione massima
		RISULTATI=`find $1 $NOME $SUBDIR $DATA $TIPO -exec du -sb {} \;  | awk '{if ($1 > '$DIM_MIN') print $2}'`
	else				# se sono specificate entrambe le dimensioni
		RISULTATI=`find $1 $NOME $SUBDIR $DATA $TIPO -exec du -sb {} \;  | awk '{if ($1 > '$DIM_MIN' && $1 < '$DIM_MAX') print $2}'`
	fi
fi
Nell'ultimo caso, se DIM_MIN non è specificata viene comunque inizializzata a 0, non mi sono dimenticato rami dell'if


Volevo memorizzare in una variabile tutto il

-exec du -sb {} \; | awk '{if ($1 > '$DIM_MIN' && $1 < '$DIM_MAX') print $2}'

per non mettere gli if, per quello avevo esposto il problema, del quale non riesco ancora a capire il motivo dell'esistenza, in quanto il codice era giusto


Con questa spiegazione spero di essere utile a qualcun altro in futuro
]DaLcA[ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Samsung anticipa gli obiettivi delle mem...
iPhone 18 Pro e Pro Max, il prezzo aumen...
Anthropic scava, NVIDIA vende i picconi:...
I 5 brand di Anker si uniscono: un solo ...
Motorola moto g67 a 229,90€ e edge 70 a ...
Scontata di oltre 50€ reali, a 179€ Robo...
Final Fantasy VII Revelation ha una data...
Super venduta perché va benissimo...
Torna a soli 34,19€ grazie a un coupon: ...
Samsung ci riprova? Nel 2027 potrebbe ar...
Questo portatile HP da 469€ in offerta &...
Fujifilm ha annunciato il nuovo super-te...
Il drone NASA Dragonfly atterrerà...
Il telescopio spaziale Hubble ha ripreso...
Face ID di Apple di nuovo in tribunale: ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v