Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2013, 19:55   #1
massimilianonball
Senior Member
 
L'Avatar di massimilianonball
 
Iscritto dal: Jul 2007
Città: Padova - Latina - Gorizia
Messaggi: 657
[BASH] stringhe composte da più variabili

Ciao ragazzi, non so se è giusto scrivere qui o nella sezione x so linux

Ad ogni modo il mio problema è questo: ho uno script in bash che gira su un server (ubuntu 12.04) che uso x configurare molto velocemente vlc come server di streaming; lo script mi permette di assegnare un valore a delle variabili che poi, compongono la stringa di lancio di vlc.
Per semplicità di esposizione riporto sotto la stringa:

Codice:
cvlc -vvv $budget "$input" --program="$serviceID" dvb://frequency="$frequenza" :dvb-adapter="$adapter" :dvb-bandwidth="$bandwith" --sout="#transcode{vcodec=$video,fps=,vb=$bitrate,scale=$scale,$size,acodec=$audio}:"$output"" $web  2>~/Desktop/vlc.log &
Avrete notato x esempio che le variabili budget o web (e altre), NON sono scritte con le virgolette, come invece dovrebbe essere; se infatti uso nella stringa tutte le variabili virgolettate (es. "$variabile"), la stringa non va.

Se invece uso la stringa come sopra tutto funziona..

Sta cosa mi fa incavolare x 2 motivi:
1. non capisco xké lo script si comporti in questo modo
2. ogni volta che faccio una modifica e aggiungo/tolgo una variabile, iniziano i mal di pancia xké devo capire a quale variabile mettere/togliere le virgolette..

Ultima stranezza:
a volte provo ad inserire TUTTA la stringa in un echo (es. echo "stringa"), x vedere cosa effettivamente mi lancia lo script: il risultato è che la stringa lanciata è LA STESSA sia mettendo le virgolette ad ogni variabile, sia assegnandole come sopra; ma solo in questo modo lo script va..

__________________
CPU Intel Q6600 stepping G0 @ 3.2 - MOBO Gigabyte GA-P35C.DS3R rev 2.1 - RAM Corsair C5 XMS2 4X2GB DDR2 PC6400 - VGA Ati Radeon HD 6870 - DISSIPATORE Zalman CNPS 9700 LED - 3 x HD: 1x [storage] Matrox DIAMONDMAX22 500GB SATA 3.5 720 + 2x raid0 [gaming] Barracuda 7200.10 160GB SATA-II 3.5IN - ALI Corsair HX MODULAR PSU 620W CMPSU-620HXEU
massimilianonball è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2013, 14:48   #2
kwb
Senior Member
 
L'Avatar di kwb
 
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
Non sono un esperto di Bash ( anzi, lo odio proprio per la sua illogicità ) ma prendi questa parte di comando:
Codice:
--sout="#transcode{vcodec=$video,fps=,vb=$bitrate,scale=$scale,$size,acodec=$audio}:"$output""
Usi due volte di fila " dopo $output .
Potrebbe essere quello?

EDIT: E apri la prima " dopo --sout=
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
kwb è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2013, 15:24   #3
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da massimilianonball Guarda i messaggi
Ciao ragazzi, non so se è giusto scrivere qui o nella sezione x so linux

Ad ogni modo il mio problema è questo: ho uno script in bash che gira su un server (ubuntu 12.04) che uso x configurare molto velocemente vlc come server di streaming; lo script mi permette di assegnare un valore a delle variabili che poi, compongono la stringa di lancio di vlc.
Per semplicità di esposizione riporto sotto la stringa:

Codice:
cvlc -vvv $budget "$input" --program="$serviceID" dvb://frequency="$frequenza" :dvb-adapter="$adapter" :dvb-bandwidth="$bandwith" --sout="#transcode{vcodec=$video,fps=,vb=$bitrate,scale=$scale,$size,acodec=$audio}:"$output"" $web  2>~/Desktop/vlc.log &
Avrete notato x esempio che le variabili budget o web (e altre), NON sono scritte con le virgolette, come invece dovrebbe essere; se infatti uso nella stringa tutte le variabili virgolettate (es. "$variabile"), la stringa non va.

Se invece uso la stringa come sopra tutto funziona..

Sta cosa mi fa incavolare x 2 motivi:
1. non capisco xké lo script si comporti in questo modo
2. ogni volta che faccio una modifica e aggiungo/tolgo una variabile, iniziano i mal di pancia xké devo capire a quale variabile mettere/togliere le virgolette..

Ultima stranezza:
a volte provo ad inserire TUTTA la stringa in un echo (es. echo "stringa"), x vedere cosa effettivamente mi lancia lo script: il risultato è che la stringa lanciata è LA STESSA sia mettendo le virgolette ad ogni variabile, sia assegnandole come sopra; ma solo in questo modo lo script va..

Da
http://www.gnu.org/software/bash/man...le-Quotes.html
Quote:
Enclosing characters in double quotes (‘"’) preserves the literal value of all characters within the quotes, with the exception of ‘$’, ‘`’, ‘\’, and, when history expansion is enabled, ‘!’
Ovvero tutti i caratteri tranne $ ` \ ! vengono interpretati letteralmente. In particolare lo spazio viene interpretato come parte della parola e non separatore degli argomenti. Che vuol dire ?

Vuol dire che se io scrivo
Codice:
cvlc -vvv $budget "$input" --program="$serviceID"
cvlc si vede passare 4 parametri, ovvero
-vvv
il contenuto di $budget (non proprio, vedi sotto)
il contenuto di $input
--program=<il contenuto di $serviceID

Se tu scrivi invece
Codice:
cvlc "-vvv $budget $input --program=$serviceID"
Il programma si vede passare un unico agomento, corrispondente alla valutazione di
-vvv $budget $input --program=$serviceID
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2013, 15:13   #4
massimilianonball
Senior Member
 
L'Avatar di massimilianonball
 
Iscritto dal: Jul 2007
Città: Padova - Latina - Gorizia
Messaggi: 657
@kwb: ti sei risposto da solo ..cmq grazie!

Marco grazie mille x il link, non si legge mai abbastanza sull'argomento..
La tua spiegazione è stata molto valida: vedo di mettere in pratica il tutto appena possibile e subito dopo vi relaziono sul risultato, x adesso grazie!!
__________________
CPU Intel Q6600 stepping G0 @ 3.2 - MOBO Gigabyte GA-P35C.DS3R rev 2.1 - RAM Corsair C5 XMS2 4X2GB DDR2 PC6400 - VGA Ati Radeon HD 6870 - DISSIPATORE Zalman CNPS 9700 LED - 3 x HD: 1x [storage] Matrox DIAMONDMAX22 500GB SATA 3.5 720 + 2x raid0 [gaming] Barracuda 7200.10 160GB SATA-II 3.5IN - ALI Corsair HX MODULAR PSU 620W CMPSU-620HXEU
massimilianonball è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
Chiude il più grande archivio di ...
I migliori monitor a partire da 74,99€: ...
Sony aveva realizzato un controller con ...
Geely E2: l'auto elettrica più ve...
Sei falle su sette senza patch in un sof...
Un nuovo studio conferma che la cometa i...
L'alternativa a Google Maps che rispetta...
I migliori TV a partire da 229€: QLED, O...
L'UE riattiva Chat Control con un cavill...
I prodotti Apple da tenere d'occhio: iPh...
NVIDIA Kyber NVL144 rinviato al 2028: pr...
RTX 4080M convertita in GPU desktop? S&i...
Mammotion Luba 3 AWD: la Formula 1 dei r...
Xiaomi Auto ha un'arma segreta: Titan Al...
Il primo pieghevole di Apple arriver&agr...
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: 12:11.


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