1
resposta

(standard_in) 1: syntax error

Boa Tarde!

Quando executo o codigo:

#!/bin/bash

if [ ! -d log ]
then
        mkdir log
fi
processos_memoria(){

processos=$(ps -e -o pid --sort -size | head -n 7 | 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">> $nome_processo.log
done
}
processos_memoria
if [ $? -eq 0 ]
then
    echo "Os arquivos foram salvos com sucesso"
else
    echo "Houve um problema na hora de salvar os arquivos"
fi

ele retorna:

(standard_in) 1: syntax error Os arquivos foram salvos com sucesso

Pq o erro "(standard_in) 1: syntax error"?

1 resposta

Olá Aliana, 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 7 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 7 onde 7 é 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!