Você precisa tornar o arquivo executável. Você pode fazer isso com
chmod +x <filename>
onde está o nome do seu script e, em seguida, você deve prefixar com ./
para instruir o shell a executar um arquivo no diretório local, como:
./script.sh
Você só pode executar arquivos que estejam no seu PATH
ou que você especifique um caminho para eles. ./
, o diretório local, não está no PATH
por padrão porque alguém pode usá-lo para fins nefastos. Imagine um script chamado ls
descartado em um diretório, você entra nesse diretório, executa ls
e esse script faz algo ruim.
Enquanto você está nisso, você pode querer torná-lo mais portátil executando shell em vez de bash usando:
#!/bin/sh
ou executando o bash não importa onde esteja instalado, desde que esteja instalado:
#!/usr/bin/env bash