Как установить libmicrohttpd10 в ubuntu 17.10

Я думаю, что всегда лучше хранить результат, количество совпадений в этом случае, в переменной.

Тем не менее, у вас есть 2 варианта, используйте grep -c для подсчета согласованных строк [!d1 ]

count=$(grep -c "$string1" file.txt)

Или соедините согласованные строки с wc с grep -o (- только совпадения)

count=$(grep -o "$string1" file.txt | wc -l)

Это будет полный скрипт со вторым вариантом [!d3 ]

#!/bin/sh
echo "Enter your string: "
read string1
count=$(grep -o "$string1" file.txt | wc -l)
if [ $count != 0 ];then
   echo "Found it ($count times)"
else
   echo "Sorry this string not in file"
fi
exit 0

Кроме того, вы написали read дважды.

4
задан 26 December 2017 в 12:57

2 ответа

Он доступен в 16.04, и установка версии 16.04 на 17.10, скорее всего, будет работать (если вы действительно не можете установить 16.04, в противном случае вы должны это сделать). Однако не просто загрузите .deb и установите его, потому что если в нем обнаружена уязвимость, вы не сможете автоматически получить исправление. Вместо этого вы можете добавить репозитории 16.04 следующим образом:

Сначала скопируйте текущий sources.list в новый файл в /etc/sources.list.d:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.d/xenial_for_libmicrohttpd10.list

Имя нового файл - это просто напоминание о будущем вам, какова его цель. Вы также можете добавить в него более подробный комментарий.

Во-вторых, используйте свой текстовый редактор, чтобы заменить все вхождения artful в файле на xenial. Например:

printf ',s/artful/xenial/\nw\n' | sudo ed /etc/apt/sources.list.d/xenial_for_libmicrohttpd10.list

Наконец, чтобы убедиться, что пакет Xenial, отличный от libmicrohttpd10, будет случайно установлен, придайте им низкий приоритет, создав файл в /etc/apt/preferences.d следующим образом: [ ! d5] Package: * Pin: release n=xenial Pin-Priority: 99 Package: libmicrohttpd10 Pin: release n=xenial Pin-Priority: 500

Тогда вы можете сделать sudo apt update && sudo apt install libmicrohttpd10.

3
ответ дан 18 July 2018 в 00:26

Он доступен в 16.04, и установка версии 16.04 на 17.10, скорее всего, будет работать (если вы действительно не можете установить 16.04, в противном случае вы должны это сделать). Однако не просто загрузите .deb и установите его, потому что если в нем обнаружена уязвимость, вы не сможете автоматически получить исправление. Вместо этого вы можете добавить репозитории 16.04 следующим образом:

Сначала скопируйте текущий sources.list в новый файл в /etc/sources.list.d:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.d/xenial_for_libmicrohttpd10.list

Имя нового файл - это просто напоминание о будущем вам, какова его цель. Вы также можете добавить в него более подробный комментарий.

Во-вторых, используйте свой текстовый редактор, чтобы заменить все вхождения artful в файле на xenial. Например:

printf ',s/artful/xenial/\nw\n' | sudo ed /etc/apt/sources.list.d/xenial_for_libmicrohttpd10.list

Наконец, чтобы убедиться, что пакет Xenial, отличный от libmicrohttpd10, будет случайно установлен, придайте им низкий приоритет, создав файл в /etc/apt/preferences.d следующим образом: [ ! d5] Package: * Pin: release n=xenial Pin-Priority: 99 Package: libmicrohttpd10 Pin: release n=xenial Pin-Priority: 500

Тогда вы можете сделать sudo apt update && sudo apt install libmicrohttpd10.

3
ответ дан 24 July 2018 в 17:13
  • 1
    sudo sed -i 's/artful/xenial/' /etc/apt/sources.list.d/xenial_for_libmicrohttpd10.list кажется более простым. Кроме того, возможно, стоит добавить только репозиторий universe. – muru 26 December 2017 в 12:36
  • 2
    @muru Мне не нравится sed -i, потому что это нестандартное (есть шутка: использование sed -i похоже на безалкогольное пиво, оно на вкус то же самое, но вы знаете, t правильно!). Добавление только universe может быть проблематичным, если требуется зависимость от main (в настоящее время это не так, поскольку все зависимости находятся в Artful, но некоторые могут быть удалены дальше по линии, если их созвучие увеличивается). – fkraiem 26 December 2017 в 12:45
  • 3
    Это может быть нестандартно для POSIX, но это отлично подходит для GNU, а значит, и для Ubuntu. – muru 26 December 2017 в 12:46
  • 4
    @muru Я это знаю; какова ваша позиция? Я сказал, почему я не включил его в свой ответ; Я никогда не говорил, что это не сработает. – fkraiem 26 December 2017 в 14:11
  • 5
    То, что ваша причина не большая причина, в конце концов, вы перестали быть POSIX, только когда вы использовали sudo, поэтому POSIX явно не имеет значения. – muru 26 December 2017 в 14:24

Другие вопросы по тегам:

Похожие вопросы: