sh / path / to / script gerará um novo shell e executará o script independente de seu shell atual. O comando source
(.) Chamará todos os comandos no script no shell atual. Se o script chamar exit
por exemplo, você perderá o shell atual. Por causa disso, é mais seguro chamar scripts em um shell separado com sh ou executá-los como binários usando o caminho completo (começando com /) ou relativo (./). Se chamados como binários, eles serão executados com o interpretador especificado (#! / Bin / bash, por exemplo).
Quanto a saber se um script vai ou não encontrar os arquivos de que precisa, não há uma boa resposta, além de olhar o script para ver o que ele faz. Como opção, você sempre pode ir para a pasta do script em um subprocesso sem sair da pasta atual:
$(cd /wherever/ ; sh script.sh)