Вопрос Bash, чтобы проверить, установлен ли mdadm, если он не установит его


Работа над скриптом bash, который сначала проверяет, установлен ли mdadm, если он не установит его. Это мой сценарий, но он работает неправильно. Надеюсь, кто-нибудь может мне помочь.

 if [ "$mdadm" = "mdadm" ]
    then
  echo -e "Mdadm is installed.\n"
   else
   echo -e "Install mdadm .\n"
   aptitude -y install $mdadm

   fi

2
2018-02-15 10:26


происхождения


Вам не нужно проверять, установлен ли он. - Ramchandra Apte


ответы:


Это необходимый скрипт (скажем, script.sh)

#!/bin/sh

for P; do
    dpkg -s "$P" >/dev/null 2>&1 && {
        echo "$P is installed."
    } || {
        echo "Installing $P"
        aptitude -y install $P
    }
done

Применение: script.sh mdadm

Вы также можете проверить столько пакетов, сколько вам нужно

Применение: script.sh mdadm package2 package3 ...

EDIT: только для одного пакета вы можете сделать следующее:

    dpkg -s "mdadm" >/dev/null 2>&1 && {
        echo "mdadm is installed."
    } || {
        echo "Installing mdadm"
        aptitude -y install mdadm
    }

2
2018-02-15 10:35



Большое спасибо! Если вы хотите указать пакет в скрипте, это изменить p на имя пакета? - user3185936
да дорогой. Просто удалите цикл for и замените $ P <yourpackagename> .plz, не забудьте оставить ответ. - kamil
Если вам это нужно, я отредактирую ответ - kamil
Это было бы здорово, если бы вы могли отредактировать ответ. Я, конечно, постараюсь сделать это сам, но очень не уверен. - user3185936
@ user3185936 проверить изменения - kamil