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

KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC lancia il nuovo monitor gaming H27E6, un modello da 27 pollici che promette prestazioni estreme grazie al pannello Fast IPS con risoluzione 2K QHD (2560x1440). Il monitor si posiziona come una scelta cruciale per gli appassionati di eSport e i professionisti creativi, combinando una frequenza di aggiornamento di 300Hz e un tempo di risposta di 1ms con un'eccezionale fedeltà cromatica
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
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
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


KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
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...
GeForce RTX 50 SUPER cancellate o rimand...
Windows 11 si prepara a vibrare: Microso...
La “Burnout Season” colpisce l’Italia: i...
QNAP annuncia il JBOD TL-R6020Sep-RP: ol...
Siemens e NVIDIA uniscono le forze: arri...
Ricarica veloce e durata batteria: miti ...
Le "navi volanti" di Candela a...
Bambini su misura? Il caso della startup...
Iliad porta le SIM Express in edicola: r...
Offerte Amazon sui TV Mini LED Hisense 2...
Il silenzio digitale che fa male: come i...
Il responsabile del programma Cybertruck...
Domanda alle stelle per SSD e RAM: in Gi...
Zuckerberg vuole eliminare tutte le mala...
Otto suicidi, un solo chatbot: si moltip...
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: 01:30.


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