Parece que no ponto de execução, a variável não está definida; o script procura um arquivo /bin/tools/RunFunctions/
, não /opt/openfoam222/bin/tools/RunFunctions
.
Repare que projéteis não interativos não carrega .bashrc por padrão , portanto, o fato de a variável ser definida quando você a utiliza em interativo não é uma prova. Mesmo se você estiver executando o script do shell, as variáveis não serão exportadas para o sub-shell por padrão, elas precisam ser declaradas export
para fazer isso.
Tente adicionar uma linha como
echo "DEBUG variable is $WM_PROJECT_DIR"
antes da linha com falha em ./Allrun e verifique a saída. Se esse for o problema, você deverá fornecer explicitamente o arquivo em seu script. Ou adicione um
export WM_PROJECT_DIR
para passá-lo para subshells.
Adicionado (após comentários). Note que você não deve explicitamente originar seu .bashrc
no seu .profile
(eles têm um significado diferente e o shell os origina em diferentes ocasiões, veja por exemplo aqui .)
Os scripts (não interativos) nunca devem confiar em seu shell de login para serem executados. Se eles precisarem de arquivos / definições específicos, devem source
explicitamente. Para o que você sabe, ele pode ser chamado até mesmo de um tipo diferente de shell ou de nenhum shell.