Respostas:
$prompt: /path/to/script
e pressione Enter. Observe que você precisa ter certeza de que o script tem permissões de execução.
/path/to
diretório, por exemplo, com o cd /path/to
comando, você pode entrar ./script
para executar seu script. Não se esqueça, neste caso, o './' antes de 'script'
Mais uma maneira de executá-lo (desta vez sem definir permissões de execução):
bash /path/to/scriptname
cd para o diretório que contém o script, ou coloque-o em uma pasta bin que está em seu $ PATH
então digite
./scriptname.sh
se no mesmo diretório ou
scriptname.sh
se estiver na pasta bin.
./scriptname.sh
funciona para mim, mas scriptname.sh
dá scriptname.sh: command not found
. -rwxr-xr-x
são suas permissões.
cd
qualquer lugar comete outro mal-entendido comum para iniciantes. A menos que o script internamente tenha dependências que exijam sua execução em um diretório específico (como a necessidade de ler um arquivo de dados para o qual o script inexplicavelmente não oferece uma opção para apontar), você nunca deve precisar de cd
nenhum lugar para executá-lo muitas vezes não vai querer.
Você poderia fazer:
sh scriptname.sh
sh
é um link simbólico para bash
, ou se o script não usa qualquer construção específicas do Bash. No primeiro caso, usar em bash
vez de sh
é a única solução correta e portátil; no último caso, não é a resposta correta para esta pergunta em particular, porque o OP perguntou sobre conselhos para um script Bash especificamente. Perpetrar a resposta errada é irresponsável; usuários que não conseguem perceber a diferença postam aqui com frequência e precisam ser mostrados por que essa resposta "funcionou para mim" não funcionou para eles.
Em primeiro lugar você tem que torná-lo executável usando: chmod +x name_of_your_file_script
.
Depois de torná-lo executável, você pode executá-lo usando ./same_name_of_your_file_script
Mude o seu diretório para onde o script está localizado usando o comando cd
Então digite
bash program-name.sh
cd
lugar nenhum; você pode especificar um nome de caminho arbitrariamente complexo como o argumento para bash
; na verdade, qualquer programa que receba um argumento de nome de arquivo funciona dessa maneira (ou é terrivelmente, entorpecentemente quebrado).
Este é um tópico antigo, mas me deparei com ele e estou surpreso que ninguém tenha colocado uma resposta completa ainda. Então aqui vai ...
P: Como faço para executar isso no Terminal?
Confusões e conflitos:
sudo
fazer nada disso. Este comando é reservado para a execução de comandos como outro usuário ou um usuário 'root' (administrador). Ótima postagem aqui .(Uma pessoa que está aprendendo a executar scripts não deve usar este comando a menos que haja uma necessidade real, como instalar um novo programa. Um bom lugar para colocar seus scripts é na pasta ~ / bin. Você pode chegar lá digitando cd ~/bin
ou cd $HOME/bin
no prompt do terminal. Você terá permissões totais nessa pasta.)
Para "executar este script" a partir do terminal em um sistema do tipo Unix / Linux, você deve fazer três coisas:
Diga ao sistema a localização do script. (escolha um)
/path/to/script.sh
). Você pode verificar o caminho completo digitando pwd
ou echo $PWD
no terminal../
para o caminho (por exemplo ./script.sh
). Fácil.PATH
e apenas digite o nome (por exemplo script.sh
). Você pode verificar o sistema PATH
digitando echo $PATH
ou echo -e ${PATH//:/\\n}
se quiser uma lista mais organizada.Diga ao sistema que o script tem permissão para ser executado. (escolha um)
chmod +x /path/to/script.sh
no terminal.chmod 755 /path/to/script.sh
se preferir números. Há uma grande discussão com um gráfico legal aqui .Informe ao sistema o tipo de script. (escolha um)
BASH /path/to/script.sh
ou PHP /path/to/script.php
) Se o script tiver uma extensão, como .php ou .py, ela faz parte do nome do script e você deve incluí-la.#!/bin/bash
) em seu exemplo. Se você tiver isso como a primeira linha do seu script, o sistema usará esse programa para executar o script. Não há necessidade de digitar programas ou usar extensões.PATH
usando #!/usr/bin/env
seguido do nome do programa (por exemplo, #!/usr/bin/env bash
ou #!/usr/bin/env python3
). Existem prós e contras conforme discutido aqui .script.sh
e script.php
são os nomes de arquivo literais desses scripts, e que se você colocar uma extensão no nome do arquivo, será necessário incluí-la ao executar o script (e vice-versa; se o script não ' t tem uma extensão, não coloque uma). Isso é diferente, por exemplo, do DOS, em que você pode omitir o .bat
ou .exe
do nome do arquivo e os arquivos precisam ter uma extensão de um pequeno conjunto para serem considerados executáveis.
Se você estiver em um diretório ou pasta onde o arquivo de script está disponível, basta alterar a permissão do arquivo no modo executável,
chmod +x your_filename.sh
Depois disso, você executará o script usando o seguinte comando.
$ sudo ./your_filename.sh
Acima de "." representam o diretório atual. Nota! Se você não estiver no diretório onde o arquivo de script bash está presente, você pode alterar o diretório onde o arquivo está localizado usando
cd Directory_name/write the complete path
comando. Caso contrário, seu script não pode ser executado.
sudo
está errado e potencialmente terrivelmente errado se você usá-lo em um script não confiável que abusa dos poderes que você deu a ele desnecessariamente.
cd
algum lugar é difícil de entender, mas provavelmente também está errado.
chmod +x scriptname
e então./scriptname
.