Testar a executabilidade com test -x
Nesta etapa, você aprenderá como verificar se um arquivo é executável usando o comando test com a opção -x. O comando test é um comando de shell embutido que avalia expressões condicionais. A opção -x verifica especificamente a permissão de execução.
Primeiro, vamos criar um arquivo de texto simples no seu diretório ~/project. Usaremos o comando echo para colocar algum texto em um arquivo chamado my_script.sh.
echo "echo 'Hello from the script!'" > ~/project/my_script.sh
Agora, vamos verificar se este arquivo é executável. Por padrão, quando você cria um novo arquivo dessa forma, ele não terá permissões de execução.
Use o comando test -x seguido pelo caminho para o arquivo:
test -x ~/project/my_script.sh
Após executar este comando, você não verá nenhuma saída se o teste for bem-sucedido (o que significa que o arquivo NÃO é executável). Se o arquivo fosse executável, test -x retornaria um status de 0, que é tipicamente interpretado como "true" ou "success" em shell scripting, mas ele não imprime nada no terminal por padrão.
Para ver o resultado do comando test, podemos verificar o status de saída do comando anterior usando $?. Um status de saída de 0 significa que o teste foi verdadeiro (o arquivo é executável), e um status diferente de zero (geralmente 1) significa que o teste foi falso (o arquivo não é executável).
echo $?
Você deve ver uma saída de 1, indicando que my_script.sh atualmente não é executável.
Agora, vamos tornar o arquivo executável usando o comando chmod. chmod é usado para alterar as permissões de arquivos e diretórios. Usaremos +x para adicionar a permissão de execução para o proprietário do arquivo.
chmod +x ~/project/my_script.sh
Agora, vamos testar a executabilidade novamente:
test -x ~/project/my_script.sh
E verificar o status de saída:
echo $?
Desta vez, a saída deve ser 0, confirmando que o arquivo agora é executável.
Finalmente, vamos tentar executar o script para ver a saída:
~/project/my_script.sh
Você deve ver:
Hello from the script!
Isso confirma que você conseguiu tornar o arquivo executável e executá-lo.