首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curl命令在git-bash中

curl命令在git-bash中
EN

Stack Overflow用户
提问于 2018-06-06 15:40:01
回答 1查看 31.4K关注 0票数 12

我有一个用bash编写的脚本,并在Linux (CentOS 7)和MacOS上进行了测试。该脚本使用cURL与REST兼容的数据平台(XNAT)进行交互。

我希望Windows用户能够在Git bash中使用Git for Windows附带的相同脚本。不幸的是,在git中使用cURL似乎存在问题。

我对cURL的第一个使用是检索JSESSION cookie:

代码语言:javascript
复制
COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`

在Linux上,这要求用户输入密码,并将cookie存储在COOKIE中。在git-bash中,发出命令挂起,直到使用"ctrl + C“中断它。奇怪的是,此时会显示密码的查询消息,但太晚了,脚本已经终止。

我怀疑这可能与CRLF问题有关,但却找不到一些我理解的信息。

任何指点都欢迎!

谢谢

编辑:如果我在命令中传递密码,上面的命令看起来很好,如下所示:

代码语言:javascript
复制
COOKIE=`curl -k -u $USERNAME:$PASSWORD https://theaddress/JSESSION`

但是,正如这里所指出的:Using cURL with a username and password?我宁愿避免让用户输入他们的密码作为命令参数。

所以现在的问题是“为什么当我使用第一个命令时,cURL不提示输入密码?”当在Windows上使用git-bash时,该命令在Linux或MacOS中的行为与预期相同:

代码语言:javascript
复制
 COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 13:48:52

最后回答我自己的问题,希望这对其他人有用。

根据以下线程:cURL,在git-bash中运行https://github.com/curl/curl/issues/573时,该问题似乎是一个已知的问题。

特别是见dscho在2015年12月30日的回答。

问题是我们在Git中使用的终端仿真器,因为GitforWindows2.5,MinTTY。此终端模拟器不与Win32控制台相关联,因此当cURL希望通过所述控制台与用户交互时,用户不会看到任何内容。

这个问题有一个解决办法,在这里有文档记录:https://github.com/git-for-windows/build-extra/blob/master/ReleaseNotes.md#known-issues

解决办法是通过winpty运行curl,如下所示: winpty curl [arguments]

毕竟,CRLF没有问题。

所以,git可能不是在Windows中运行bash脚本的灵丹妙药。叹息..。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50724407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档