Verificando se existe linha no arquivo

Verificando se existe linha no arquivo

Eu tenho um script bash que pede ao usuário o número de núcleos da CPU e o salva na variável chamada $cores. Agora quero adicionar essa variável .bashrc, então pergunto ao usuário quantos núcleos de CPU ele possui e se ele deseja salvar esse valor .bashrc.

Agora a pergunta: como posso verificar se $coresjá existe .bashrcpara que o script não pergunte ao usuário novamente?

Responder1

Em vez de perguntar ao usuário quantos núcleos o sistema possui, por que não perguntar ao sistema? Isso é melhor porque não envolve gravar em um arquivo de propriedade do usuário. Veja algo comoesse, que usa 'getconf' para solicitar a variável NPROCESSORS_CONF. Ou para outros sistemas, as ideias apresentadasaquipode ser útil - usando sysctlou grep over /proc/cpuinfopara encontrar o número de núcleos.

Responder2

Experimente isto:

'awk /\$core/ { print }'

Responder3

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

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

Isso verificará se $coresa variável está definida ou não. isto é, se $cores for nulo, ele exibirá "not set", caso contrário, "set". Na verdade, .bashrcnão é fornecido automaticamente para shells não interativos, como aqueles iniciados quando você executa um script de shell. Portanto, você colocaria . .bashrcpróximo ao início do seu .bash_loginarquivo, para garantir que .bashrcele seja originado para shells interativos de login e não-login.

informação relacionada