./<scriptname> executa <scriptname> em um processo filho e aguarda a saída dele.
. <scriptname> executa <scriptname> no mesmo processo; as razões pelas quais isso é usado geralmente permitem que <scriptname> modifique o ambiente e execute ações adicionais sem o custo do recurso de gerar um novo processo.
bash <scriptname> diz ao bash para executar <scriptname> . Se <scriptname> tiver um shebang com o caminho para bash ( #!/bin/bash ) no topo, ele terá o mesmo efeito que apenas executar <scriptname> . Se <scriptname> apontar para outro intérprete ( #!/bin/sh ), então <scriptname> seria normalmente interpretado por esse programa, mas você está ignorando isso, pedindo ao bash para interpretá-lo.