./<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.