我正在运行带有curl命令的bash脚本。 我从属性文件中读取了用户名,密码和URL。 但是当命令执行时,响应会给出一个错误,指出您无权访问此页面。 我打印出整个curl命令,这是正确的。
以下是代码的一部分:
这让我回答说未经授权:
curl -u $USERNAMEVAL:$PWDVAL $URLVAL
这甚至可以从bash程序中完美运行:
curl -u test\\test:test www.blah.com
可能是什么问题?任何帮助将不胜感激。
答案 0 :(得分:0)
当我遇到Bash shell脚本中的命令失败的情况时,我认为相同的命令是相同的参数,当我手动运行它时,我怀疑参数值或参数引用的问题。
作为隔离问题的第一步,我建议在行
之前curl -u $USERNAMEVAL:$PWDVAL $URLVAL
你添加了诸如
之类的东西echo "curl -u $USERNAMEVAL:$PWDVAL $URLVAL"
甚至(非常清楚):
echo "\$USERNAMEVAL(${#USERNAMEVAL}): \"$USERNAMEVAL\""
echo "\$PWDVAL(${#PWDVAL}): \"$PWDVAL\""
echo "\$URLVAL(${#URLVAL}): \"$URLVAL\""
echo "curl -u $USERNAMEVAL:$PWDVAL $URLVAL"
这将打印用于构造curl
命令的每个变量的名称,长度和值。
E.g:
#!/bin/bash
USERNAMEVAL='test\\test'
PWDVAL='test'
URLVAL='www.blah.com'
echo "\$USERNAMEVAL(${#USERNAMEVAL}): \"$USERNAMEVAL\""
echo "\$PWDVAL(${#PWDVAL}): \"$PWDVAL\""
echo "\$URLVAL(${#URLVAL}): \"$URLVAL\""
echo "curl -u $USERNAMEVAL:$PWDVAL $URLVAL"
打印:
$USERNAMEVAL(10): "test\\test"
$PWDVAL(4): "test"
$URLVAL(12): "www.blah.com"
curl -u test\\test:test www.blah.com