我通过提供输入作为命令行在linux中运行我的应用程序.我的输入字段包含一个在内部包含";"(分号)的参数(例如:123; 434; 5464).这将使用UTF8String编码和发送进行解析.但是,当我这样使用时,我最初会得到,
bash: 434: command not found
bash: 5464: command not found
Run Code Online (Sandbox Code Playgroud)
当我捕获流量时,输出仅包含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
Run Code Online (Sandbox Code Playgroud)
其中-id字段包含有问题的值.
Shi*_*dim 30
;被视为命令结束字符.所以123;456;5464bash实际上是3个命令.要传递这样的元字符,请使用转义字符将其转义\.
./command 123\;456\;5464
Run Code Online (Sandbox Code Playgroud)
或者只用单引号引用它(双引号评估内部字符串)(谢谢Triplee,我忘了提到这个)
./command '123;456;5464'
Run Code Online (Sandbox Code Playgroud)