Cyr*_*ril 6 windows bash curl git-bash
我有一个用bash编写的脚本,并在Linux(CentOS 7)和MacOS上进行了测试.该脚本用于cURL与符合REST API的数据平台(XNAT)进行交互.
我希望Windows用户可以在git-bash中使用与Git for Windows打包相同的脚本.不幸的是,cURL在git-bash中使用时似乎存在问题.
我做的第一个用途cURL是检索一个JSESSION cookie:
COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`
Run Code Online (Sandbox Code Playgroud)
在Linux上,这会要求用户输入密码并存储cookie COOKIE.在git-bash中,发出命令会挂起,直到使用" ctrl + C"来中断它.奇怪的是,此时显示了密码的查询消息,但为时已晚,脚本已终止.
我有一个怀疑,这可能与做CR或LF问题,但不能找到一些信息,我明白对此.
任何指针都会受到欢迎!
谢谢
编辑: 如果我在命令中传递密码,上面的命令似乎正常工作:
COOKIE=`curl -k -u $USERNAME:$PASSWORD https://theaddress/JSESSION`
Run Code Online (Sandbox Code Playgroud)
但是,正如此处所指出的: 使用cURL和用户名和密码? 我宁愿避免让用户输入他们的密码作为命令参数.
所以现在的问题是" cURL当我使用第一个命令时,为什么不提示输入密码?" 当在Windows上的git-bash中时,该命令在Linux或MacOS中的行为与预期相同:
COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`
Run Code Online (Sandbox Code Playgroud)
结束回答我自己的问题,希望这可能对其他人有用.
cURL根据这个帖子,从git-bash中运行时看来这个问题是一个已知的问题:https:
//github.com/curl/curl/issues/573
特别是,看到的答案dscho上二○一五年十二月三十〇日:
问题是我们使用Git Bash的终端模拟器,因为Git for Windows 2.5,MinTTY.此终端仿真程序未与Win32控制台关联,因此当cURL希望通过所述控制台与用户交互时,用户看不到任何内容.
此问题有一个解决方法,在此处记录:https: //github.com/git-for-windows/build-extra/blob/master/ReleaseNotes.md#known-issues
解决方法是通过winpty运行curl,如下所示:
winpty curl [arguments]
未与问题CR或LF毕竟.
Soooo,git-bash可能不是在Windows中轻松运行我的bash脚本的魔法子弹(tm).叹...
| 归档时间: |
|
| 查看次数: |
8498 次 |
| 最近记录: |