Erro em automatizar tarefa do shell

1. Erro em automatizar tarefa do shell

Wellington Robson Correia Ferreira
wrobson

(usa Linux Mint)

Enviado em 03/11/2018 - 00:41h

Ola, gostaria de saber qual o erro que possui o seguinte script:

#!/bin/bash

echo Atualizando repositórios..
if ! apt-get update
then
echo "Não foi possível atualizar os repositórios. Verifique seu arquivo /etc/apt/sources.list"
exit 1
fi
echo "Atualização feita com sucesso"

echo "Atualizando pacotes já instalados"
if ! apt-get dist-upgrade -y
then
echo "Não foi possível atualizar pacotes."
exit 1
fi
echo "Atualização de pacotes feita com sucesso"

if apt-get install $1
then
echo "Não foi possível instalar o pacote $1"
exit 1
fi
echo "Instalação finalizada"



  


2. Re: Erro em automatizar tarefa do shell

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 03/11/2018 - 01:24h

wrobson escreveu:
Ola, gostaria de saber qual o erro que possui o seguinte script:


Tirando que o script está mal confeccionado, aqui não deu erro nenhum !!! fez o update, o upgrade e instalou o 1º parametro !!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: Erro em automatizar tarefa do shell

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/11/2018 - 01:31h

Não parece haver erros de sintaxe, pelo menos na transcrição que você fez aqui.

Que mensagem de erro você está recebendo?

Como teste de sanidade: você por acaso editou o script no Windows, antes de o copiar para o Linux? Um erro relativamente comum em alguns scripts é ter linhas que usam a convenção de fim-de-linha do Windows, que usa o par de caracteres de controle CR+LF (códigos 13 e 10 do ASCII), ao passo que o mundo Unix utiliza apenas o caráter LF. Em muitos contextos, esse CR a mais no final da linha provoca erros diversos (geralmente referentes a nomes de arquivos não encontrados ou parâmetros com valor inválido), mas o diagnóstico de tais erros é dificultado pelo fato de que tal caráter de controle é invisível para muitas ferramentas, e muitos editores de texto (inclusive o vim), ao se depararem com um arquivo produzido com a convenção de usar CR+LF, seguem a mesma convenção ao longo de todas as modificações que você vier a fazer no arquivo, sem deixar clara na tela a presença desse par de bytes.


------------------
EDIT (01:54):

Na verdade, o vim e alguns outros editores preservam as convenções percebidas no início da edição (sendo três das convenções mais comuns a do UNIX (apenas LF), do DOS/Windows (CR+LF) e da Apple (apenas CR)), a não ser que o usuário solicite a troca da convenção. O vim avisa se a convenção do arquivo for diferente do padrão do sistema no momento em que o arquivo é carregado e a cada vez que ele é salvo. Contudo, tal aviso é muito discreto (o texto “[dos]” seja exibido ao lado do nome do arquivo no carregamento e cada salvamento), e some durante operações normais de edição do arquivo.

Formas de alterar a convenção de terminação de linha do arquivo incluem os utilitários dos2unix e unix2dos, e também podem ser feitas com os comandos tr, sed e outros).


4. Re: Erro em automatizar tarefa do shell

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/11/2018 - 01:33h

Mauriciodez escreveu:

Tirando que o script está mal confeccionado


Por que mal confeccionado? Pela falta de indentação ao exibir na tela?

Se for, não seria melhor simplesmente ensinar a usar as tags [code] e [/code] do fórum do VoL?


5. Re: Erro em automatizar tarefa do shell

Hugo Torres
F9KILL

(usa Debian)

Enviado em 05/11/2018 - 12:30h

O erro não está na ultima condição IF que você esqueceu de colocar a negação?
if ! apt-get install $1 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts