bash脚本:帮助查找错误



我正在尝试运行此脚本以通过Rightscale的API进行导入操作,但是对于第二个卷曲操作,它一直在报告"不良请求400",并且看起来像URL ISN正确形成。我还尝试将帖子URL放入双引号,但这并没有改变结果。

accountlist.txt和templatelist.txt分别具有帐号和模板号,每行都有一个。要调试,我只分别将一个帐号和模板号放在每个文件中。

请帮助我了解此代码有什么问题。我猜这是微不足道的,但我不明白那是什么:

cat "AccountList.txt" | while read acc ; do
        rm scriptcookie
        curl -i -H 'X-API-VERSION:1.5' -c scriptcookie -d email="emailid@company.com" -d password="p@sswd" -X POST -d account_href="/api/accounts/$acc" https://my.rightscale.com/api/sessions 
        cat "TemplateList.txt" | while read temp ; do   
                echo $temp
                curl -i -H 'X_API_VERSION:1.5' -b ./scriptcookie -X POST https://my.rightscale.com/api/publications/$temp/import
        done
echo "Done for Account:" $acc    
done

这是我看到的输出:

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.4.2</center>
</body>
</html>

它发现我从debian squeeze的bash(4.1.5)的版本插入了托架返回'/r'的字符,以$ temp变量。

当我在cygwin上使用相同的脚本用于Windows,并且脚本毫无问题地运行时,我弄清楚了这一点。还要感谢@mark setchell提出的" -xv"标志,否则我从未弄清楚原因。

这是Debian V/S Cygwin上的" Echo $ temp"线的比较:

debian(bash-4.1.5):

++ echo $'184605r'

cygwin(Bash-4.1.11):

+ echo 184605

为什么这样?我无法回答,但是我很高兴我发现这与Bash版本本身有关。感谢所有!

相关内容

  • 没有找到相关文章

最新更新