Verificando se existe uma linha no arquivo

0

Eu tenho um script bash que solicita ao usuário o número de núcleos da CPU e salva-o na variável chamada $cores . Agora eu quero adicionar essa variável a .bashrc , então eu pergunto ao usuário quantos núcleos de CPU ele tem e então se ele quer salvar este valor em .bashrc .

Agora, a pergunta: como posso verificar se $cores já existe em .bashrc , para que o script não pergunte ao usuário novamente?

    
por albru123 20.06.2014 / 14:12

3 respostas

-2

você pode verificar se uma variável está definida no bash usando:

if [[ -z "$cores" ]]
then
    echo "not set"
else
    echo "set"
fi

Isto irá verificar se a variável $cores está definida ou não. isto é, se $ núcleos for nulo, ele exibirá "não definido", caso contrário, "definido". De fato, .bashrc não é originado automaticamente para shells não interativos, como aqueles iniciados quando você executa um shell script. Assim, você colocaria . .bashrc próximo ao início do seu arquivo .bash_login , para garantir que .bashrc seja originado para shells interativos de login e não-login.

    
por 20.06.2014 / 14:19
4

Em vez de solicitar ao usuário quantos núcleos o sistema possui, por que não apenas perguntar ao sistema? Isso é melhor porque não envolve a gravação em um arquivo de propriedade do usuário. Veja algo como this , que usa o 'getconf' para solicitar a variável NPROCESSORS_CONF. Ou para outros sistemas, as ideias apresentadas aqui podem ser úteis - usando sysctl ou um grep acima de /proc/cpuinfo para encontrar o número de núcleos.

    
por 20.06.2014 / 14:21
0

Tente isto:

'awk /\$core/ { print }'
    
por 20.06.2014 / 14:14