Ошибка установки Docker :не удалось найти шаблон распространения для Pop/groovy

Как было указано в комментариях к вопросу, проверка с помощью >выполняет не арифметическое сравнение, а лексикографическое (, так что 2 > 100верно, например ), но только в пределах [[... ]]. В [... ]это обычный оператор перенаправления вывода.

Фильтрация grep -v "grep "и grep -v "sh"также может отфильтровывать допустимые процессы из psвывода (, например, если вы хотите использовать свой скрипт в grepпроцессах ).


Следующий скрипт реализует ту же логику, но используетpgrep:

#!/bin/bash

cmd=$1

pids=( $( pgrep "$cmd" ) )

case "${#pids[@]}" in
    0) echo 'No such process'  ;;
    1) echo 'One such process' ;;
    *) echo 'Many such processes'
esac

Если вы запускаете одну команду topв другом терминале, запуск этого скрипта с topв качестве аргумента сообщит One such process. Запуск topна двух терминалах заставит его сообщить Many such processes.

С переменными, как вы используете:

#!/bin/bash

cmd=$1

pids=( $( pgrep "$cmd" ) )

critical=0
ok=1

case "${#pids[@]}" in
    $critical) echo 'No such process'  ;;
    $ok)       echo 'One such process' ;;
    *)         echo 'Many such processes'
esac

Сценарий сохраняет PID, возвращенные из pgrep, в массив (, поэтому это сценарий bash, а не sh), а затем проверяет длину массива.

Ниже приводится адаптация кsh:

#!/bin/sh

cmd=$1

set -- $( pgrep "$cmd" )

critical=0
ok=1

case "$#" in
    $critical) echo 'No such process'  ;;
    $ok)       echo 'One such process' ;;
    *)         echo 'Many such processes'
esac

Этот shскрипт использует единственный доступный нам массив, который является массивом позиционных параметров. Эти (позиционные параметры )устанавливаются в PID, сгенерированные pgrepс set, и их количество взято из $#.

0
18.12.2020, 13:05
1 ответ

Добавить источник вручную (безadd-apt-repository):

echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu groovy stable" |sudo tee /etc/apt/sources.list.d/docker-ce.list
sudo apt update
sudo apt install docker-ce
0
18.03.2021, 22:42

Теги

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