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 $cores
já existe .bashrc
para 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 sysctl
ou grep over /proc/cpuinfo
para 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 $cores
a variável está definida ou não. isto é, se $cores for nulo, ele exibirá "not set", caso contrário, "set". Na verdade, .bashrc
não é fornecido automaticamente para shells não interativos, como aqueles iniciados quando você executa um script de shell. Portanto, você colocaria . .bashrc
próximo ao início do seu .bash_login
arquivo, para garantir que .bashrc
ele seja originado para shells interativos de login e não-login.