检查命令是否存在。如果没有安装

时间:2019-02-24 22:35:23

标签: bash command dotfiles

尝试编写一个小的脚本来安装/更新点文件,但我无法使此部分正常运行: 读取要安装文件的数组:

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 :(得分:1)

如何使用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