Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não funcionou!

Segue o 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 "Os arquivos foram salvos com sucesso"
else
    echo "Houve um problema na hora de salvar os arquivos"
fi

Segue o erro:

~/Scripts$ bash processos-memoria.sh
processos-memoria.sh: linha 4: if[ ! -d log ]: comando não encontrado
processos-memoria.sh: linha 5: erro de sintaxe próximo ao token inesperado `then'
processos-memoria.sh: linha 5: `then'
2 respostas
solução!

Olá, Stanislaw. Tudo bem?

Está faltando um espaço entre o if e o [ no bloco

... 

if[ ! -d log ]
then
    mkdir log
fi

... 

Deveria ser

if [ ! -d log ]
then
    mkdir log
fi

Espero ter ajudado.

Deu certo!

Muito obrigado

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