2012-06-09 98 views
0

我想用curl删除几个对象。我有一个文件中的对象的ID列表。 我遍历列表,并发出德尔这样的:从shell脚本中卷曲

bash -x del.sh tempId.log 

+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 
+ curl -H 'Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA' -X DELETE https://url/id 
[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]+ read id 

这是脚本

#!/bin/bash 
    while read id; do 
    curl -H "Authorization:OAuth 00D30000001FxvA%21AQEAQKkcrruykRDNDapigaEdJXOc4SS_D27o686DScK8pU22BeMsgWVsWJ.Nv0DXimx2zBFKYlAUeDnGgokY2pU8m9xMoe73&apv=1&cshc=0000004qUmq0000001FxvA" -X DELETE https:url/$id 
    done <$1 

但是,如果我在终端上运行相同的curl命令它工作正常!

有什么建议吗?

谢谢!

+0

我没有看到在调试跟踪,我在你的脚本确实看到你的'id'值领先'$'。不知道该怎么做。祝你好运。 – shellter

+0

我在调试跟踪中混淆了IDS。 – codeObserver

+0

'https:url /' - 那个'url /'在那里做什么? – sarnold

回答

0

几件事情,因为别人已经发表过

  1. 什么是url指出?需要成为一个变量$url的实际URL,其值在使用前已经初始化。

  2. 可以肯定的是,解析后的完整URL会导致您需要的实际URL。对它做一个回应。

0

如果在URL中包含&符(&),我遇到了麻烦。这需要在shell脚本中进行转义,但不能在命令行中进行转义。

如:

http://myweb.com/myservlet?asd=1&jkl=2 

需求是

http://myweb.com/myservlet?asd=1\&jkl=2