2013-11-27 13 views
7

sto eseguendo la mia applicazione in linux fornendo input come riga di comando. Il mio campo di input contiene un argomento che contiene internamente ";" (punto e virgola). (Ad esempio: 123; 434; 5464). Questo verrà analizzato utilizzando la codifica UTF8String e l'invio. Ma quando sto usando in questo modo, di per sé iniziale sto ottenendo,Punto e virgola su riga di comando in linux

bash: 434: command not found 
bash: 5464: command not found 

e quando ho catturare il traffico l'output contiene solo 123 invece 123; 434; 5464 Ma se io do senza virgola (Es: 123 : 434: 5464), non viene generato alcun output corretto come 123: 434: 5464

Indirmi come fornire l'input dalla riga di comando utilizzando il punto e virgola per l'output. C'è qualche sintassi particolare da usare mentre si fa il punto e virgola. Sono in esecuzione come qui di seguito

./runASR.sh -ip 10.78.242.4 -port 3868 -sce 10.78.241.206 -id 85;167838865;1385433280 

dove campo -id contiene tale valore con la questione.

risposta

18

; viene considerato un carattere di fine comando. Quindi 123;456;5464 bash è in realtà 3 comandi. Per passare tali meta-caratteri, sfuggirlo con il carattere di escape \.

./command 123\;456\;5464 

o solo citarlo con apostrofo (double quote evaluates the inner string) (Grazie Triplee, ho dimenticato di dire questo)

./command '123;456;5464' 
+4

O citarlo. 'comando '123; 456; 5464'' – tripleee

+1

Le virgolette doppie funzionerebbero bene qui (ma le virgolette singole sono generalmente migliori); ti preoccupi di '$' e simboli di spunta indietro tra virgolette doppie. –

Problemi correlati