O ./ é necessário para informar ao intérprete bash onde o script está localizado. Existe um conjunto fixo de diretórios que o intérprete bash irá verificar para executar um comando.
Se o seu script não estiver em um desses diretórios, ele não encontrará o script, a menos que você especifique o caminho. O ./ está dizendo ao interpretador bash que o script está no diretório atual.
Você também pode executar o script de qualquer outro diretório usando o caminho completo.
por exemplo. ./script.sh de dentro de /path/to é o mesmo que executar /path/to/script.sh de qualquer lugar se o script estiver localizado em /path/to .
Você pode executar echo $PATH para obter uma lista de todos os diretórios que o intérprete bash verificará. Se você mover seu script ou colocar um link simbólico em um dos diretórios, você poderá executá-lo usando apenas o nome do arquivo script .