2013-11-27 100 views
7

我通過提供輸入作爲命令行來運行我的應用程序。我的輸入字段包含一個內部包含「;」(分號)的參數(例如:123; 434; 5464)。 這將使用UTF8String編碼和發送進行解析。 但是,當我使用這樣的,在最初的本身我得到,在Linux命令行中使用分號

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

當我捕捉流量輸出只包含123而不是123; 434; 5464 但是,如果我給沒有分號(例如:123 :434:5464),沒有得到任何問題輸出正確地作爲123:434:5464

指向我如何通過使用分號輸入命令行輸入。使用分號時有沒有特別的語法可供使用? 我正在像下面

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

其中-id字段包含有問題該值。

回答

18

;被視爲結束命令字符。所以123;456;5464 bash實際上是3個命令。要傳遞這些元字符,請使用轉義字符\進行轉義。

./command 123\;456\;5464 

或只是單引號(double quote evaluates the inner string)引用它(感謝Triplee,我忘了提及這一點)

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

或引用它。 '命令'123; 456; 5464'' – tripleee

+1

雙引號實際上可以在這裏正常工作(但單引號通常更好);你擔心'$'和雙引號內的反標符號。 –