我通过提供输入作为命令行在linux中运行我的应用程序。我的输入字段包含一个在内部包含“;”(分号)的参数(例如:123; 434; 5464)。 这将使用UTF8String编码和发送进行解析。 但是,当我这样使用的时候,我最初会得到,
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字段包含有问题的值。
答案 0 :(得分:28)
;
被视为命令结尾字符。所以123;456;5464
bash实际上就是3个命令。要传递这样的元字符,请使用转义字符\
将其转义。
./command 123\;456\;5464
或者只引用单引号(double quote evaluates the inner string)(感谢Triplee,我忘记提及此内容)
./command '123;456;5464'