1
resposta

(standard_in) 1: syntax error

Caros companheiros, boa tarde.

Após execução do script, os logs foram escritos, o diretório foi criado, porém, obtive esta saída junto com a mensagem de sucesso:

Código:

#!/bin/bash

if [ ! -d log ]
then
        mkdir log
fi


processos_memoria(){

processos=$(ps -e -o pid --sort -size | head -n 11 | grep [0-9])

for pid in $processos
do
        nome_processo=$(ps -p $pid -o comm=)
        echo -n $(date +%F,%H:%M:%S,) >> log/$nome_processo.log
        tamanho_processo=$(ps -p $pid -o size | grep [0-9])
        echo $( bc <<< "scale=2;$tamanho_processo/1024") MB" >> log/$nome_processo.log
done

}

processos_memoria

if [ $? -eq 0 ]
then
        echo "Arquivos foram salvos com sucesso"
else
        echo "Houve um problema na hora de salvar os arquivos"
fi

Saída:

burt@GLHVTC3:~/workspace/scripts$ bash processos-memoria.sh
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
Arquivos foram salvos com sucesso

Poderiam me tirar essa dúvida?

Obs: segue saída de meu ps -e

burt@GLHVTC3:~/workspace/scripts$ ps -e
  PID TTY          TIME CMD
    1 ?        00:00:00 init
    7 ?        00:00:00 init
    8 ?        00:00:00 init
    9 pts/0    00:00:00 bash
  354 pts/0    00:00:00 ps

Será que é pela quantidade de processos menor que o "head" ?

1 resposta

Olá Daniel, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

O objetivo deste script é criar um diretório que conterá informações sobre os 11 processos de maior consumo de memória em execução no sistema. Todavia, o erro (standard_in) 1: syntax error ocorre neste caso, devido à quantidade de processos em execução em seu computador ser menor do que a definida em código, na linha head -n 11 onde 11 é o número de processos buscado.

Para que o erro não ocorra, uma sugestão é alterar o valor de head para outro menor, como o valor dois, por exemplo (head -n 2). Todavia, como é retornado a mensagem de "Os arquivos foram salvos com sucesso", não há o que se preocupar, os logs estão sendo salvos corretamente.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software