脚本中的bash curl用户名凭据
我将用户名和密码传递给curl命令,以接收api调用的输出。我不确定出了什么问题,但是curl命令在命令行中工作,但是当我在bash脚本中使用相同的curl命令时,它不能正确地获取凭据。API调用失败,出现授权错误。有人能在这里扔些指针吗脚本中的bash curl用户名凭据,bash,curl,Bash,Curl,我将用户名和密码传递给curl命令,以接收api调用的输出。我不确定出了什么问题,但是curl命令在命令行中工作,但是当我在bash脚本中使用相同的curl命令时,它不能正确地获取凭据。API调用失败,出现授权错误。有人能在这里扔些指针吗 curl--silent-u'blah blah:youreawesome$1234'https://example.com/api/check 这是剧本 USERNAME=$1 密码=$2 curl--silent-u“${USERNAME}:${PASSW
curl--silent-u'blah blah:youreawesome$1234'https://example.com/api/check
这是剧本
USERNAME=$1
密码=$2
curl--silent-u“${USERNAME}:${PASSWORD}”https://example.com/api/check
{“timestamp”:1509422967185,“status”:401,“error”:“Unauthorized”,“message”:“Bad credentials”,“path”:“/api/check”}
试试这个
UNAME=$1
PASSWORD=$2
curl --silent -u "${UNAME}:${PASSWORD}" https://example.com/api/check
试试这个
UNAME=$1
PASSWORD=$2
curl --silent -u "${UNAME}:${PASSWORD}" https://example.com/api/check
大宗报价
卷发——沉默——胡说八道:你大概是1234美元
这可能是对引号的误解,但您的脚本不会接受$
符号后的字符串
在为脚本提供输入时,可能需要将用户名和密码用引号括起来
大宗报价
卷发——沉默——胡说八道:你大概是1234美元
这可能是对引号的误解,但您的脚本不会接受$
符号后的字符串
在为脚本提供输入时,可能需要将用户名和密码用引号括起来 谢谢你的回答!!不管出于什么原因,我修改了脚本,将username和password作为单独的变量,并将其传递给curl命令后,就可以工作了
CREDS=“${USERNAME}:${PASSWORD}”
CURL\u CMD=“CURL--silent-u${CREDS}”
${CURL\u CMD}https://example.com/api/check
谢谢您的回答!!不管出于什么原因,我修改了脚本,将username和password作为单独的变量,并将其传递给curl命令后,就可以工作了
CREDS=“${USERNAME}:${PASSWORD}”
CURL\u CMD=“CURL--silent-u${CREDS}”
${CURL\u CMD}https://example.com/api/check
您可以这样使用,
例如:
在代码中,请使用如下单引号
curl --silent -u "'${USERNAME}:${PASSWORD}'" https://example.com/api/check
你可以这样用,
例如:
在代码中,请使用如下单引号
curl --silent -u "'${USERNAME}:${PASSWORD}'" https://example.com/api/check
USERNAME!=用户
?但是,PASSWORD=PASSWORD;-)如果这解决了您的问题,请删除此Q,因为代码中的拼写错误与主题无关。祝你好运。$USER
也是一个保留变量名(自动设置为当前用户名)。最好使用小写(或混合大小写)变量名来避免类似这样的冲突。@Sheller,我编辑这个问题是为了避免混淆。Thanks@GordonDavisson,这是一个很好的观点,我将用户名更改为mixedcase,并再次注意到相同的错误。我已经用StackTrace错误更新了问题,如果修复了,它应该可以工作。您是否正确引用脚本的参数?另外,尝试在curl
命令之前添加set-x
ti脚本,这样它将打印出它实际运行的内容(注意:它打印的内容并不是字面上正在执行的内容,而是与它等价的内容,但有时会有奇怪的引用或参数转义)。USERNAME!=用户
?但是,PASSWORD=PASSWORD;-)如果这解决了您的问题,请删除此Q,因为代码中的拼写错误与主题无关。祝你好运。$USER
也是一个保留变量名(自动设置为当前用户名)。最好使用小写(或混合大小写)变量名来避免类似这样的冲突。@Sheller,我编辑这个问题是为了避免混淆。Thanks@GordonDavisson,这是一个很好的观点,我将用户名更改为mixedcase,并再次注意到相同的错误。我已经用StackTrace错误更新了问题,如果修复了,它应该可以工作。您是否正确引用脚本的参数?另外,尝试在curl
命令之前添加set-x
ti脚本,这样它就可以打印出它实际运行的内容(注意:它打印的内容不是字面上正在执行的内容,而是与它等价的内容,但有时会有奇怪的引用或参数转义)。我不建议这样做。将命令放入变量中不会解决任何问题,如果密码包含空格或$IFS
中的任何内容(或一些shell通配符或…请参阅),则会导致问题。如果这似乎解决了问题,那么很可能还有其他一些你还没有理解的事情正在发生,它可能会在以后再次出现。切换到小写变量,尝试set-x
,看看到底发生了什么。我不建议这样做。将命令放入变量中不会解决任何问题,如果密码包含空格或$IFS
中的任何内容(或一些shell通配符或…请参阅),则会导致问题。如果这似乎解决了问题,那么很可能还有其他一些你还没有理解的事情正在发生,它可能会在以后再次出现。切换到小写变量,尝试set-x
,并找出真正发生的情况。