O primeiro pensamento é mudar a extensão para .sh. Deve ser capaz de executar como ./FTL.sh. Segundo, se estiver faltando a #!/bin/shparte superior do arquivo, também não funcionará.
Terceiro, se você acabar tendo sudocomandos misturados com comandos que não exigem sudo, você pode echo <sudo_password> | command.
Nesse caso, a melhor prática (da perspectiva da automação / controle de qualidade) é executar seu comando ./FTL.sh <sudo_password>e capturar a senha para usar posteriormente no script para cada comando que solicitará a senha do sudo.
ex:
#!/bin/sh
PW=$1 #sets first parameter
...
# non-sudo commands
...
echo $PW | command`
Também não é uma má idéia lançar um yes |quando seu comando pergunta se você deseja continuar por qualquer motivo. Então você pode modificar o acima paraecho $PW | yes | command
Normalmente, também capto toda a saída durante o teste, o que pode ser realizado anexando |& tee path/to/logfile.logao final de qualquer comando, se você quiser assistir o progresso no console ou alternar |& teepara &>se tiver um longo tempo de execução ou não desejar para monitorar o progresso.
ex:
if echo $PW | yes | command |& tee path/to/logfile.log; then
if sed -Fq "Validation Passed" path/to/logfile.log; then
echo "PASS: returned 'Validation Pass'"
else echo "FAIL: test did not return 'Validation Pass'"
fi
else echo "Test Failed"
fi
Apenas uma rapidinha no comando sed, -Fpermite que você especifique o nome do arquivo (em vez de procurar uma saída do processo) e -qexecuta o sed silenciosamente e sai depois que termina a pesquisa no arquivo / processo. Veja a documentação do sed para mais informações.
file FTLe o sistema fará o possível para descobrir o que é e informar.