Muitas vezes eu me pego escrevendo shellscripts que precisam lidar com caminhos relativos. O problema é que você não pode presumir que o usuário do seu script o está executando a partir do diretório de scripts, então, se você quiser algo assim:
#!/bin/bash
./some/other/script.sh
para trabalhar de qualquer lugar, você terá que primeiro fazer o cd no diretório do seu script:
#!/bin/bash
BASEDIR="$( cd "$( dirname "$0" )" && pwd )"
cd $BASEDIR
./some/other/script.sh