@kkoshakk

Где ошибка в скрипте?

#!/bin/bash

packageInstalled () {
  numberOfPackages='apt list --installed | grep $1 | wc -l'
  if [ "$numberOfPackages" -gt "0" ];
    then
      echo "true"
    else
      echo "false"
    fi
}

packageInstalled nginx-extras
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
numberOfPackages='apt list --installed | grep $1 | wc -l'

Неправильные кавычки. Должно быть так:
numberOfPackages=`apt list --installed | grep $1 | wc -l`

В этом случае команды выполнятся в строке присваивания numberOfPackages, а в if [ "$numberOfPackages" подставится число. В оригинальном коде внутрь if подставляется следующее:
if [ "apt list --installed | grep $1 | wc -l" -gt "0" ]
, что, конечно, не имеет никакого смысла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@pfg21
ex-турист
накуя грепать список ??
юзай dpkg -s %имя_пакета% люк !!
Если в выходном потоке есть строка
Status: install ok installed
то пакет установлен

если строка
Status: deinstall ok config-files
то пакет деинсталирован, но в системе остались ошметки конфигов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы