Escrever scripts no Linux: O sistema operacional Linux fornece uma variedade de comandos e sintaxes para a criação e gerenciamento de scripts.
Esses recursos permitem aos usuários automatizar tarefas, realizar testes condicionais, manipular a saída de comandos e muito mais.
Aqui estão alguns dos comandos e conceitos mais úteis:
for
: Este é um comando de loop que permite a repetição de comandos.- Por exemplo:
for i in {1..5};
do echo $i;
done
imprime os números de 1 a 5.
- Por exemplo:
while
: Este é um outro comando de loop que permite a repetição de comandos.- Por exemplo:
i=1
while [ $i -le 5 ]
do echo $i
i=$((i+1))
done
imprime os números de 1 a 5.
- Por exemplo:
if
: Este é um comando para realizar validação condicional.- Por exemplo:
numero=10
if [ $numero -lt 20 ] then
echo "O número é menor que 20."
else
echo "O número é maior ou igual a 20."
fi
- Por exemplo:
test
: O comandotest
é usado em scripts de shell para verificar condições, junto de uma condicional if.- Por exemplo:
numero=10
if test $numero -lt 20 then
echo "O número é menor que 20."
else
echo "O número é maior ou igual a 20."
fi
O comandotest
verifica senumero
é menor que 20. Se for verdade, o script imprime “O número é menor que 20.”. Se não for verdade (ou seja, senumero
for maior ou igual a 20), o script imprime “O número é maior ou igual a 20.”. O bloco de código para a instruçãoif
termina comfi
- Por exemplo:
- Substituição de comandos: Isso permite que a saída de um comando seja usada como entrada para outro.
- Por exemplo:
echo Hoje é $(date)
Este comando imprime a data atual.
- Por exemplo:
- Valores retornados: Cada comando retorna um valor para indicar sucesso (0) ou falha (diferente de 0). Veja esse funcionamento na condicional if!
- Comandos encadeados: Os operadores
&&
e||
permitem encadear comandos para serem executados com base no sucesso ou falha do comando anterior.- Por exemplo:
arquivo="/path/to/file"
[ -f "$arquivo" ] && echo "O arquivo existe." || echo "O arquivo não existe."
Neste script, o comando[ -f "$arquivo" ]
verifica se o arquivo existe. Se o arquivo existir, o comando após o operador&&
é executado, e “O arquivo existe.” é impresso. Se o arquivo não existir, o comando após o operador||
é executado, e “O arquivo não existe.” é impresso.
Os operadores&&
e||
permitem que você encadeie comandos com base no sucesso (código de saída 0) ou falha (código de saída diferente de 0) do comando anterior. O operador&&
executa o próximo comando se o comando anterior for bem-sucedido, enquanto o operador||
executa o próximo comando se o comando anterior falhar.
- Por exemplo:
- Superusuário: O superusuário (root) tem permissões completas no sistema. Mensagens podem ser enviadas para o superusuário usando comandos como
write
oumail
. - Shebang (#!): Esta é a primeira linha de um script que indica o interpretador a ser usado, como
#!/bin/bash
para Bash ou#!/usr/bin/python3
para Python.- Exemplo de script em Bash:
#!/bin/bash
numero=10
if [ $numero -lt 20 ] then
echo "O número é menor que 20."
else
echo "O número é maior ou igual a 20."
fi
Salve como verificanum.sh, execute o comando chmod +x verificanum.sh para torná-lo executável e por fim digite o comando ./verificanum.sh e veja seu script sendo executado!
- Exemplo de script em Bash:
- Gerenciamento de scripts: Os comandos
chown
,chmod
echgrp
podem ser usados para gerenciar a propriedade, as permissões e o grupo de um script. Além disso, o bit suid pode ser definido para permitir que o script seja executado com as permissões do proprietário do arquivo.
Conclusão
Escrever scripts no Linux: Os comandos Linux são ferramentas poderosas para a criação e gerenciamento de scripts. Eles permitem que os usuários automatizem tarefas, realizem testes condicionais, manipulem a saída de comandos e muito mais.
Com essas ferramentas, os usuários podem efetivamente controlar o comportamento de seus scripts e garantir que eles sejam executados de maneira segura e eficiente. Através dos exemplos acima, esperamos que você tenha uma melhor compreensão de como usar esses comandos e o que esperar de suas saídas.