У меня есть скрипт, написанный на bash и протестированный, работающий в Linux (CentOS 7) и на MacOS.Сценарий использует cURL
для взаимодействия с REST API-совместимой платформой данных (XNAT).
Я надеялся, что пользователи Windows могут использовать тот же сценарий в git-bash, который поставляется в комплекте с Git для Windows.К сожалению, кажется, что при использовании cURL
в git-bash возникает проблема.
Первое использование cURL
, которое я использую, - это получение файла cookie JSESSION:
COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`
В Linux, это запрашивает у пользователя пароль и сохраняет куки в COOKIE
.В git-bash выдача команды зависает, пока не используется «ctrl + C
» для ее прерывания.Странно, что в этот момент отображается сообщение с запросом пароля, но слишком поздно сценарий завершен.
У меня есть подозрение, что это может быть связано с проблемами CR
или LF
, но не можетнайдите информацию, которую я понимаю по этому поводу.
Любые указатели приветствуются!
Спасибо
РЕДАКТИРОВАТЬ: Похоже, что приведенная выше команда работает нормально, еслиЯ передаю пароль в команде следующим образом:
COOKIE=`curl -k -u $USERNAME:$PASSWORD https://theaddress/JSESSION`
Однако, как указано здесь: Использование cURL с именем пользователя и паролем? Я бы предпочел, чтобы пользователь не вводил свой пароль какаргумент команды.
Таким образом, теперь возникает вопрос "почему cURL
не запрашивает пароль при использовании первой команды?"когда в git-bash в Windows эта команда работает так, как ожидается в Linux или MacOS:
COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`