错误在python中的值中发送带有&符号的参数?

srh*_*snl 3 python arguments centos ampersand

我在python中处理2个脚本.第一个需要向第二个脚本发送值或参数.现在的问题是每当我将值发送到第二个脚本时,第二个脚本都无法获取我发送的所有参数.我发送的值是一个URL,它包含一个&符号.我注意到它一直在削减第一次出现&的价值.

让我们坐下来,我需要通过这个:

http://www.google.com/jfljflfjej&12345

第二个脚本只会收到:

http://www.google.com/jfljflfjej

为了能够捕获正确的值,我需要做什么?还有哪些与此问题相同的角色?

Mar*_*ers 5

你需要在整个值周围加上引号,包括&符号,因为它是一个特殊的shell字符.或者,你可以通过在它前面放一个反斜杠来逃避&符号:

http://www.google.com/jfljflfjej\&12345
Run Code Online (Sandbox Code Playgroud)

&符号向shell发出信号,您希望在后台模式下将命令放到该点.

以下任何字符在shell中都是特殊的:

 \ ' " ` < > | ; <Space> <Tab> <Newline> ( ) [ ] ? # $ ^ & * =
Run Code Online (Sandbox Code Playgroud)

这些需要以同样的方式逃脱; 使用反斜杠或在值周围加上引号.