5

私はPythonで2つのスクリプトを扱っています。最初のスクリプトは、値または引数を2番目のスクリプトに送信する必要があります。問題は、2番目のスクリプトに値を送信するたびに、2番目のスクリプトが送信したすべての引数を取得できなかったことです。Imが送信する値はURLであり、アンパサンドが含まれています。&の初登場まで値を下げ続けていることに気づきました。

たとえば、座ってみましょう、私はこれを渡す必要があります:

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

2番目のスクリプトはこれだけを受け取ります:

http://www.google.com/jfljflfjej

正しい値を取得するにはどうすればよいですか?そして、これと同じ問題を抱えている他のどのキャラクターですか?

4

2 に答える 2

6

特別なシェル文字であるため、アンパサンドを含む値全体を引用符で囲む必要があります。または、その前に円記号を付けることで、アンパサンドだけをエスケープすることもできます。

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

アンパサンドは、コマンドをバックグラウンドモードでその時点まで実行するシェルに信号を送ります。

次の文字はいずれもシェルでは特別です

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

これらは同じ方法でエスケープする必要があります。バックスラッシュを使用するか、値を引用符で囲みます。

于 2012-09-21T06:28:32.810 に答える
2

Maybe it's a bit late to answer you but I had the same problem and I found a simple solution to that.

You can use the function replace() to replace every ampersand with their code in HTML '%26' like this.

url = http://www.google.com/jfljflfjej&12345
print url.replace('&', '%26')

And the result:

http://www.google.com/jfljflfjej%2612345

It's a problem of coding.

于 2014-04-08T14:09:11.447 に答える