O script foi eficaz mesmo com o erro de sintaxe, então parece que essa questão realmente se resume a como executar um script .
Executando como um arquivo executável
Para executar um script que esteja no diretório atual sem invocar explicitamente o shell , você deve preceder seu nome com ./
. Também deve ser executável.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Isso só funcionará se o script começar com uma linha de hashbang especificando qual shell deve ser executado isso.
Se você executou chmod 777
no script, e isso ajudou, então o motivo pelo qual isso ajudou foi quase certamente que ele deu a você, como proprietário do script, permissões de execução no script. Você também deu a si mesmo e a todos os outros usuários permissões de leitura e gravação, bem como permissão de execução para todos os outros usuários. Isso é desnecessário, potencialmente um sério problema de segurança. chmod u+x
é tão bom e muito mais seguro.
Invocando o Shell
Como alternativa, você pode executar o script invocando explicitamente o shell, como você tentou inicialmente:
sh install-depot-multisystem.sh
O script tem uma extensão .sh
, por isso deve ser executado com sh
. Mas caso o autor do script o tenha dado mal, e é realmente um script bash
, você pode tentar rodar com bash
(como geirha sugerido):
bash install-depot-multisystem.sh
Em execução no shell atual
Isso está incluído apenas para preenchimento completo - a menos que você tenha escrito o roteiro e saiba que isso funcionará corretamente, ou as instruções que acompanham o script digam para executá-lo dessa maneira, você deve usar um dos dois métodos anteriores. Muitos scripts só funcionarão direito se tiverem seu próprio shell no qual executar (o que é realizado por um dos dois métodos acima).
Com isso dito, você pode tentar executar o script no shell atual, com o ambiente do shell atual, com um dos seguintes comandos:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
Executando como root
Se o script estiver instalando um programa ou serviço em todo o sistema, talvez seja necessário executá-lo como root. Não execute um script (nem nada) como root, a menos que você saiba que precisa fazer isso.
Para executá-lo como root, coloque sudo
na frente do comando que o executa. Qualquer um desses três comandos funcionará (embora o primeiro ainda exija permissões de execução):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh