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

Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2006, 11: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, 22: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, 22: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, 01: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, 10: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, 12: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, 17: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


Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
TVS non è solo moto e scooter: ec...
Alexa+ arriva su BMW: gli automobilisti ...
Gemini Deep Research arriva su Google Fi...
Rinvii a catena, Marvel 1943: Rise of Hy...
Xiaomi inaugura uno spazio dedicato ai f...
Rilasciate le specifiche di Bluetooth 6....
L'obiettivo che mette tutto a fuoco: la ...
Meta avrebbe raccolto fino al 10% dei ri...
NVIDIA DGX Spark e videogiochi? Una pess...
Serie Oppo Reno15 confermata: arriva il ...
UPDF 2025: l'editor PDF che fa (quasi) t...
Partono altri sconti pesanti su Amazon, ...
OpenAI senza freni: centinaia di miliard...
Blink Mini 2 da 34,99€ 15,90€ (-55%) su ...
Altro che AGI, la superintelligenza di M...
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: 15:02.


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