Eu tenho um script de shell que não foi concluído na semana passada; foi um cd
comando " " com falha e sai se falhar.
O script é um bash
script shell para configurar novas instalações Debian. Aqui está o script completo: debianConfigAswome.sh . O script é executado como root para ter acesso total ao sistema de arquivos.
Você pode listar todos os motivos pelos quais um script não seria capaz de executar um cd
comando com êxito e o que fazer para evitar o erro?
Existem várias razões pelas quais um
cd
pode falhar. O destino pode não existir, o destino pode não ser um diretório, você pode não ter permissão para acessar o diretório de destino,cd
pode não ser encontrado (embora isso seja extremamente improvável, pois é um shell embutido), achdir()
operação pode falhar devido a uma falha sistema de arquivos etcNeste caso em particular, no entanto, parece um bug no script. O script ao qual você vincula tem duas chamadas para
cd
:e
Estou assumindo que o que falhou é o primeiro, pois
cd $HOME
normalmente deve funcionar. Esta é a seção relevante (ligeiramente simplificada) do seu script:Então, se
"$WORK_DIR"/nanorc
não for um diretório, você executa umgit
comando que cria onanorc
diretório. O primeiro problema possível é que onanorc
será criado no diretório atual, que pode não ser$WORK_DIR
. Neste ponto do seu script, você ainda não mudou para$WORK_DIR
o , portanto, só deve funcionar se você executar o script de dentro do$WORK_DIR
.Portanto, a solução simples é adicionar um
cd $WORK_DIR
antes dogit
comando: