Eu tento executar um arquivo de script de shell, mas falhei até agora no Ubuntu.
No meu terminal:
~/Desktop/FTL/data$ ls
amd64 exe_icon.bmp FTL licenses resources x86
~/Desktop/FTL/data$ sudo bash ./FTL.sh
[sudo] password for anon:
bash: ./FTL.sh: No such file or directory
~/Desktop/FTL/data$ sh FTL.sh
sh: 0: Can't open FTL.sh
~/Desktop/FTL/data$
command-line
bash
scripts
ICWiener
fonte
fonte
file FTL
e o sistema fará o possível para descobrir o que é e informar.Respostas:
Bem, como pode ser deduzido da saída do
ls
comando, o nome do arquivo éFTL
, nãoFTL.sh
. Então você deve usar:ou
ou talvez apenas:
Verifique também se o arquivo é executável executando:
fonte
O primeiro pensamento é mudar a extensão para
.sh
. Deve ser capaz de executar como./FTL.sh
. Segundo, se estiver faltando a#!/bin/sh
parte superior do arquivo, também não funcionará.Terceiro, se você acabar tendo
sudo
comandos misturados com comandos que não exigemsudo
, você podeecho <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:
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.log
ao final de qualquer comando, se você quiser assistir o progresso no console ou alternar|& tee
para&>
se tiver um longo tempo de execução ou não desejar para monitorar o progresso.ex:
Apenas uma rapidinha no comando sed,
-F
permite que você especifique o nome do arquivo (em vez de procurar uma saída do processo) e-q
executa o sed silenciosamente e sai depois que termina a pesquisa no arquivo / processo. Veja a documentação do sed para mais informações.fonte
Sempre use este comando para todos os scripts a serem executados pelo servidor.
fonte