Дальнейшее объяснение того, почему ответ @That Brazilian Guy работает.
libcurl3-dev
предоставляется несколькими пакетами, одним из которых являетсяlibcurl4-openssl-dev
Сначала что libcurl
установлено? Мы находим, что libcurl3
установлен.
# aptitude search libcurl
v libcurl-dev -
v libcurl-dev:i386 -
p libcurl-ocaml - OCaml curl bindings (Runtime Library)
p libcurl-ocaml:i386 - OCaml curl bindings (Runtime Library)
v libcurl-ocaml-d6l49 -
p libcurl-ocaml-dev - OCaml libcurl bindings (Development package)
p libcurl-ocaml-dev:i386 - OCaml libcurl bindings (Development package)
v libcurl-ocaml-dev-d6l49 -
v libcurl-ocaml-dev-ephj1:i386 -
v libcurl-ocaml-ephj1:i386 -
v libcurl-ssl-dev -
v libcurl-ssl-dev:i386 -
i A libcurl3 - easy-to-use client-side URL transfer library (OpenSSL flavour)
p libcurl3:i386 - easy-to-use client-side URL transfer library (OpenSSL flavour)
p libcurl3-dbg - debugging symbols for libcurl (OpenSSL, GnuTLS and NSS flavours
p libcurl3-dbg:i386 - debugging symbols for libcurl (OpenSSL, GnuTLS and NSS flavours
v libcurl3-dev -
v libcurl3-dev:i386 -
i A libcurl3-gnutls - easy-to-use client-side URL transfer library (GnuTLS flavour)
p libcurl3-gnutls:i386 - easy-to-use client-side URL transfer library (GnuTLS flavour)
v libcurl3-gnutls-dev -
v libcurl3-gnutls-dev:i386 -
p libcurl3-nss - easy-to-use client-side URL transfer library (NSS flavour)
p libcurl3-nss:i386 - easy-to-use client-side URL transfer library (NSS flavour)
v libcurl3-nss-dev -
v libcurl3-nss-dev:i386 -
v libcurl3-openssl-dev -
v libcurl3-openssl-dev:i386 -
v libcurl4-dbg -
v libcurl4-dbg:i386 -
v libcurl4-dev -
v libcurl4-dev:i386 -
p libcurl4-doc - documentation for libcurl
p libcurl4-gnutls-dev - development files and documentation for libcurl (GnuTLS flavour
p libcurl4-gnutls-dev:i386 - development files and documentation for libcurl (GnuTLS flavour
p libcurl4-nss-dev - development files and documentation for libcurl (NSS flavour)
p libcurl4-nss-dev:i386 - development files and documentation for libcurl (NSS flavour)
p libcurl4-openssl-dev - development files and documentation for libcurl (OpenSSL flavou
p libcurl4-openssl-dev:i386 - development files and documentation for libcurl (OpenSSL flavou
p libcurlpp-dev - c++ wrapper for libcurl (development files)
p libcurlpp-dev:i386 - c++ wrapper for libcurl (development files)
p libcurlpp0 - c++ wrapper for libcurl
p libcurlpp0:i386 - c++ wrapper for libcurl
Попробуемlibcurl-dev
# apt-get install libcurl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libcurl-dev is a virtual package provided by:
libcurl4-openssl-dev 7.35.0-1ubuntu2.13
libcurl4-nss-dev 7.35.0-1ubuntu2.13
libcurl4-gnutls-dev 7.35.0-1ubuntu2.13
You should explicitly select one to install.
E: Package 'libcurl-dev' has no installation candidate
Нет, кажется, libcurl4
так что давайте будем осторожны с этим...
Попытка libcurl3-dev
напрямую
# apt-get install libcurl3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libcurl4-openssl-dev' instead of 'libcurl3-dev'
The following extra packages will be installed:
comerr-dev krb5-multidev libgcrypt11-dev libgnutls-dev libgnutlsxx27
libgpg-error-dev libgssrpc4 libidn11-dev libkadm5clnt-mit9 libkadm5srv-mit9
libkdb5-7 libkrb5-dev libldap2-dev libp11-kit-dev librtmp-dev libtasn1-6-dev
Suggested packages:
krb5-doc libcurl4-doc libcurl3-dbg libgcrypt11-doc gnutls26-doc gnutls-bin
krb5-user
The following NEW packages will be installed:
comerr-dev krb5-multidev libcurl4-openssl-dev libgcrypt11-dev libgnutls-dev
libgnutlsxx27 libgpg-error-dev libgssrpc4 libidn11-dev libkadm5clnt-mit9
libkadm5srv-mit9 libkdb5-7 libkrb5-dev libldap2-dev libp11-kit-dev
librtmp-dev libtasn1-6-dev
0 upgraded, 17 newly installed, 0 to remove and 4 not upgraded.
Need to get 2,542 kB of archives.
After this operation, 11.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Итак, даже libcurl3-dev
хочет libcurl4-openssl-dev
так что поехали...
Вы включаете trap
в сценарий оболочки или вводите его в командной строке? Рассмотрим, например:
#!/usr/bin/env zsh
interrupted=false
trap 'tput cnorm; interrupted=true' INT TERM
for ((i = 0; i < 100; ++i)); do
clear
date
sleep 1
if [[ "${interrupted}" = "true" ]]; then
echo "Interrupted"
break
fi
done
При этом я имитирую «обратный отсчет» с циклом задержки, который печатает время. Я могу прервать "обратный отсчет". Я печатаю «прервано» только для иллюстрации.
$./ex.zsh
Sat Jan 25 12:59:12 EST 2020
^CInterrupted
$
Мой пример включает ваш tput cnorm
, но на самом деле он мне не нужен, так как я ничего не делаю, чтобы изменить его с самого начала, но я включаю его, чтобы он более точно соответствовал тому, что у вас есть в вашем вопросе выше.
Это что-то близкое к тому, что вы пытаетесь сделать?