Execute o shell script sem mostrar todos os logs

0

É possível executar esse script em uma espécie de modo 'silencioso', de modo que somente os echo 'sejam exibidos? Todas as outras saídas devem ser armazenadas em um arquivo de log.

#!/bin/sh

which docker && docker --version | grep "Docker version"
if [ $? -eq 0 ]
then
    echo "already existing"
else
    sudo apt-get update && sudo apt-get upgrade -y
    apt-cache policy docker-engine

    sudo apt-get install -y \
        linux-image-extra-$(uname -r) \
        linux-image-extra-virtual \
        docker-engine

    sudo service docker start

    which docker && docker --version | grep "Docker version"

    if [ $? -eq 0 ]
    then
        echo "installed correctly"
    else
        echo "installation failed" >&2
    fi
fi
    
por user3142695 10.02.2017 / 21:05

1 resposta

2

Sim, você pode alterar algumas linhas:

#!/bin/sh

which docker && docker --version | grep -q "Docker version"
if [ $? -eq 0 ]
then
    echo "already existing"
else
    sudo apt-get update && sudo apt-get upgrade -y 2>&1 >something.log
    apt-cache policy docker-engine 2>&1 >something.log

    sudo apt-get install -y \
        linux-image-extra-$(uname -r) \
        linux-image-extra-virtual \
        docker-engine 2>&1 >something.log

    sudo service docker start 2>&1 >something.log

    which docker && docker --version | grep -q "Docker version"

    if [ $? -eq 0 ]
    then
        echo "installed correctly"
    else
        echo "installation failed" >&2
    fi
fi
    
por 10.02.2017 / 21:11