Я нашел работу.
не уверен, что происходит, но я изменил свои свойства отображения. и он отлично работает. вот последовательность: display propertis-> settings tab-> advance. в диалоговом окне предварительного перехода я изменил «Настройки DPI» с Большого (120dpi) на Normal (96 dpi)
Это НАМНОГО больше, чем OP, относительно которого попросили, но так как это - главный результат для надежно передающих паролей к curl
, я добавляю эти решения здесь для других, которые прибывают, сюда ища это.
ПРИМЕЧАНИЕ: -s
аргумент для read
команда не является POSIX и так не доступна везде, таким образом, это не будет использоваться ниже. Мы будем использовать stty -echo
и stty echo
вместо этого.
ПРИМЕЧАНИЕ: Все переменные удара ниже могли вместо этого быть объявлены как местные жители если в функции вместо сбрасывания.
ПРИМЕЧАНИЕ: perl
довольно общедоступно во всех системах, которые я попробовал из-за него являющийся зависимостью для многих вещей, тогда как ruby
и python
не, таким образом с помощью [1 112] здесь. Если можно гарантировать ruby
/ python
, где Вы делаете это, можно заменить эти perl
команда с их эквивалентом.
ПРИМЕЧАНИЕ: Протестированный в [1 116] 3.2.57 на macOS 10.14.4. Некоторый маленький перевод может требоваться для других оболочек/установок.
<час>Надежно предлагают пользователю (допускающий повторное использование) пароль передавать завихрению. Особенно полезный, если необходимо назвать завихрение многократно.
Для современных оболочек, где echo
встроенное (проверка через [1 118]):
url='https://example.com'
printf "Username: "
read username
printf "Password: "
stty -echo # disables echoing user input, POSIX equivalent for 'read -s'
read pass
printf "\n" # we need to move the line ahead
stty echo # re-enable echoing user input
echo ${pass} | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
unset username
unset pass
Для более старых оболочек, где echo
что-то как [1 120] (где независимо от того, что это echos видно в списке процессов):
ЭТА ВЕРСИЯ не МОЖЕТ СНОВА ИСПОЛЬЗОВАТЬ ПАРОЛЬ , видеть, опускаются вместо этого.
url='https://example.com'
printf "Username: "
read username
printf "Password: "
stty -echo # disables echoing user input, POSIX equivalent for 'read -s'
perl -e '
my $val=<STDIN>;
chomp $val;
print STDERR "\n"; # we need to move the line ahead, but not send a newline down the pipe
print $val;
' | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
stty echo # re-enable echoing user input
unset username
, Если Вы, оказывается, должны сохранить пароль временно в файл, снова используете его для нескольких команд прежде, чем очистить его (говорят, потому что Вы используете функции для повторного использования кода и не хотите повторять код и не может раздать значение через эхо). (Да, они немного изобретены, смотря в этой форме, не являющейся функциями в различных библиотеках; я пытался уменьшить их до минимального кода, должен был показать его.)
, Когда эхо встроено (это особенно изобретено, так как эхо является встроенным, но предусмотрело полноту):
url='https://example.com'
filepath="$(mktemp)" # random path, only readable by current user
printf "Username: "
read username
printf "Password: "
stty -echo # disables echoing user input, POSIX equivalent for 'read -s'
read pass
echo "${pass}" > "${filepath}"
unset pass
printf "\n" # we need to move the line ahead
stty echo # re-enable echoing user input
cat "${filepath}" | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
rm "${filepath}" # don't forget to delete the file when done!!
unset username
, Когда эхо - что-то как [1 121]:
url='https://example.com'
filepath="$(mktemp)" # random path, only readable by current user
printf "Username: "
read username
printf "Password: "
stty -echo # disables echoing user input, POSIX equivalent for 'read -s'
$(perl -e '
my $val=<STDIN>;
chomp $val;
open(my $fh, ">", $ARGV[0]) or die "Could not open file \"$ARGV[0]\" $\!";
print $fh $val;
close $fh;
' "$filepath")
printf "\n" # we need to move the line ahead
stty echo # re-enable echoing user input
cat "${filepath}" | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
rm "${filepath}" # don't forget to delete the file when done!!
unset username
Используйте флаг -u
, чтобы включить имя пользователя, и curl запросит пароль:
curl -u username http://example.com
Вы также можете включить пароль в команду, но тогда ваш пароль будет виден в истории bash :
curl -u username:password http://example.com