Um usuário criou um arquivo chamado “script.sh” no seu “home...

Próximas questões
Com base no mesmo assunto
Q2007670 Sistemas Operacionais
Um usuário criou um arquivo chamado “script.sh” no seu “home directory" de uma instalação padrão do Linux Ubuntu 18 Desktop. Esse arquivo contém alguns comandos que ele costuma executar com frequência, mas, sempre que tenta executar o script, ele obtém uma mensagem de erro. Ele pediu para alguém ajudá-lo e enviou uma cópia dos comandos que executou e seus retornos, como segue abaixo:
$ cd
$ ls -l script.sh -rwxr-xr-x 1 user user 11 Oct 03 18:31 script.sh
$ script.sh script.sh: command not found


Com base nos comandos apresentados pelo usuário, qual seria uma forma de executar o script.sh sem erros?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - ./script.sh

Para resolver essa questão, é necessário compreender alguns aspectos dos sistemas operacionais Unix-like, como o Linux, particularmente em relação à execução de scripts e ao gerenciamento de permissões de arquivos. A mensagem de erro "command not found" sugere que o shell (o interpretador de comandos do Linux) não consegue localizar o script para executá-lo.

Quando tentamos executar um script ou comando no Linux, o sistema procura por ele em todos os diretórios listados na variável de ambiente PATH. Se o script estiver em um diretório que não está incluído na variável PATH, o sistema não será capaz de executá-lo a menos que seja fornecido o caminho completo ou relativo até ele.

Por que a alternativa D está correta? Usar o comando ./script.sh indica ao sistema que o arquivo script.sh está no diretório atual (indicado pelo ponto .), e que desejamos executá-lo. As permissões mostradas no comando ls -l (-rwxr-xr-x) confirmam que o usuário tem permissão de execução (x) nesse script. Assim, ao preceder o nome do arquivo com ./, estamos indicando o caminho relativo do mesmo, o que permite que o shell o encontre e o execute corretamente.

As demais alternativas estão incorretas porque não especificam corretamente o caminho para a execução do script ou usam sintaxe que não corresponde ao esperado pelo shell para a execução de um arquivo. Por exemplo, a alternativa B (./.script.sh) adiciona um ponto extra que não faz sentido na estrutura do caminho do arquivo.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O comando chmod + x/diretorio/meu-script.sh somente altera as permissões do script para torná-lo executável, mas é necessário usar o comando ./meu-script.sh para, de fato, executá-lo. Desta forma a letra D é a questão correta.

Na letra A vemos que ele da permissão a todos para executar

porem no comando do chmod da questao, o mesmo ja da propriedades de execucao para todos os usuarios

o mesmo só faltou informar o diretorio do arquivo utilizando o ./

GAB D

Uma vez que esse script.sh não consta no PATH, para que a execução ocorra ele precisa especificar o caminho completo ou relativo do script.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo