проверьте, существует ли команда.если не установить - PullRequest
0 голосов
/ 25 февраля 2019

Попытка написать небольшой скрипт для установки / обновления точечных файлов, но я не могу заставить эту часть функционировать должным образом: массив для чтения устанавливаемых файлов:

APPARRAY=(curl htop ncdu pydf tree tmux vim)

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

function app_installer(){
    for APP in "${APPARRAY[@]}"
    do
        # echo $APP
        #install $APP
        if command -v  $APP 2> /dev/null; then
            echo "$APP already installed!" #>> $LOG
        # if command doesnt exist, install it
         elif -x command -v  $APP 2>/dev/null ; then
            echo installing $APP #install $APP
        else
            echo "$APP FAILED TO INSTALL!!!" #>> $LOG
        fi
    done 
}

1 Ответ

0 голосов
/ 25 февраля 2019

Как насчет этого подхода с использованием which

APPARRAY=(curl htop tree tmux vim vimx)
function app_installer(){
    for APP in "${APPARRAY[@]}"
    do
        which $APP > /dev/null 2>&1
        rc=$?
        if [ $rc == 0 ]; then
            continue
        fi

        echo installing $APP
        # try and install app
        # if install fails, log to file
    done
}

app_installer

Поскольку у меня есть все, кроме vimx (я не думаю, что vimx - вещь, я просто что-то придумал), он будетвыход,

installing vimx
...