Shell Script: Primeiros conceitos
Introdução ao Shell Script, esta poderosa ferramenta que facilita bastante a administração dos sistemas Linux. Com este artigo, espero dar base àqueles que ainda não conhecem o Shell Script para começar a desenvolver seus próprios scripts e entender também scripts feitos por outros membros da comunidade.
Parte 3: Entendendo linha-a-linha
#! /bin/bash
Serve para indicar qual dos shells (alguém aí sabe qual o plural de shell?) será utilizado para a execução dos comandos contidos no script. No nosso caso, utilizaremos o bash (que é o mais utilizado atualmente).
echo ""
O comando "echo" serve para jogar mensagens na tela, quando colocamos ele sem nenhuma mensagem, teremos uma linha em branco na tela. Temos então uma saída menos embolada das informações na tela :)
echo -e "Qual partição você deseja montar?" "\c"
O parâmetro "-e" do comando echo ativa a interpretação de opções como a "\c", que por sua vez, faz com que a resposta do usuário fique na linha em que termina o texto que será jogado na tela pelo echo. Sem o "\c", a resposta do usuário será digitada na linha de baixo. Isso não altera em nada o funcionamento do script.
read part
Nesta linha, o comando read guarda o que foi respondido pelo usuário na string part. O nome da string pode ser o que você quiser, usei part porque conterá o nome da partição a ser montada.
echo
Linha em branco na tela!
echo "Onde deseja montar $part ?"
Esta é a segunda pergunta feita ao usuário, sendo jogada na tela pelo comando echo. Agora string part é jogada na tela, usamos um $ antes para indicar que se trata de uma string, fazendo o shell exibir seu conteúdo, ou seja, se não colocarmos o $ antes do nome da string, a palavra part seria jogada na tela como outra qualquer e não o conteúdo da string part ;).
Um pequeno detalhe, repare que sem os parâmetros -e e "\c", do comando echo, a resposta do usuário será escrita na linha de baixo, não na mesma linha em que termina a pergunta.
read dir
Aqui criamos outra string (dir), essa string conterá o nome do diretório que o usuário digitou, para ser usado mais tarde.
if [ -d $dir ]
O comando if combinado com o comando test (representado por [ ]) tem uma importante função no script. O comando test ([ ]) testa as condições nele colocadas, ou seja, no nosso caso, se o diretório que o usuário digitou (que está contido na string dir) realmente é um diretório (parâmetro -d). Para testar a string, por exemplo, como um arquivo comum, usaria-se o parâmetro -f.
Mas e o comando if? O comando if executa determinadas ações se o "teste" se confirmar e outras se o "teste" for falso. Nas próximas linhas veremos exatamente como isso funciona.
then
O then faz parte do comando if. Depois do then, coloca-se os comandos a serem executados caso o "teste" se confirme.
mount /dev/$part $dir
Nesta linha são "jogadas" as strings para a execução do comando que montará a partição indicada pelo usuário, no diretório também indicado por ele. Na linha do comando indicamos que se trata de uma string usando o $ antes de seu nome, fazendo que o conteúdo da string seja usado no comando. Ou seja, na string part temos como conteúdo o nome da partição a ser montada e na string dir temos onde deverá ser montada a partição indicada anteriormente.
else
O else também faz parte do comando if. Depois do else, são colocadas as linhas a serem executadas caso aquele "teste" não se confirme.
echo "$dir Não existe!"
Se o diretório não existir, o comando echo jogará na tela a mensagem indicando ao usuário que o diretório de fato não existe.
fi
Indica o "fim" do comando if, ou seja, a partir daqui, as linhas são executadas independentemente do resultado do "teste" que foi feito com o nome do diretório.
Pronto!
Pode ser um exemplo considerado "bobo", mas espero que sirva para se pegar os primeiros conceitos, funções de alguns comandos, estruturação de script, o que é, aliás, o verdadeiro intuito do artigo.
Serve para indicar qual dos shells (alguém aí sabe qual o plural de shell?) será utilizado para a execução dos comandos contidos no script. No nosso caso, utilizaremos o bash (que é o mais utilizado atualmente).
echo ""
O comando "echo" serve para jogar mensagens na tela, quando colocamos ele sem nenhuma mensagem, teremos uma linha em branco na tela. Temos então uma saída menos embolada das informações na tela :)
echo -e "Qual partição você deseja montar?" "\c"
O parâmetro "-e" do comando echo ativa a interpretação de opções como a "\c", que por sua vez, faz com que a resposta do usuário fique na linha em que termina o texto que será jogado na tela pelo echo. Sem o "\c", a resposta do usuário será digitada na linha de baixo. Isso não altera em nada o funcionamento do script.
read part
Nesta linha, o comando read guarda o que foi respondido pelo usuário na string part. O nome da string pode ser o que você quiser, usei part porque conterá o nome da partição a ser montada.
echo
Linha em branco na tela!
echo "Onde deseja montar $part ?"
Esta é a segunda pergunta feita ao usuário, sendo jogada na tela pelo comando echo. Agora string part é jogada na tela, usamos um $ antes para indicar que se trata de uma string, fazendo o shell exibir seu conteúdo, ou seja, se não colocarmos o $ antes do nome da string, a palavra part seria jogada na tela como outra qualquer e não o conteúdo da string part ;).
Um pequeno detalhe, repare que sem os parâmetros -e e "\c", do comando echo, a resposta do usuário será escrita na linha de baixo, não na mesma linha em que termina a pergunta.
read dir
Aqui criamos outra string (dir), essa string conterá o nome do diretório que o usuário digitou, para ser usado mais tarde.
if [ -d $dir ]
O comando if combinado com o comando test (representado por [ ]) tem uma importante função no script. O comando test ([ ]) testa as condições nele colocadas, ou seja, no nosso caso, se o diretório que o usuário digitou (que está contido na string dir) realmente é um diretório (parâmetro -d). Para testar a string, por exemplo, como um arquivo comum, usaria-se o parâmetro -f.
Mas e o comando if? O comando if executa determinadas ações se o "teste" se confirmar e outras se o "teste" for falso. Nas próximas linhas veremos exatamente como isso funciona.
then
O then faz parte do comando if. Depois do then, coloca-se os comandos a serem executados caso o "teste" se confirme.
mount /dev/$part $dir
Nesta linha são "jogadas" as strings para a execução do comando que montará a partição indicada pelo usuário, no diretório também indicado por ele. Na linha do comando indicamos que se trata de uma string usando o $ antes de seu nome, fazendo que o conteúdo da string seja usado no comando. Ou seja, na string part temos como conteúdo o nome da partição a ser montada e na string dir temos onde deverá ser montada a partição indicada anteriormente.
else
O else também faz parte do comando if. Depois do else, são colocadas as linhas a serem executadas caso aquele "teste" não se confirme.
echo "$dir Não existe!"
Se o diretório não existir, o comando echo jogará na tela a mensagem indicando ao usuário que o diretório de fato não existe.
fi
Indica o "fim" do comando if, ou seja, a partir daqui, as linhas são executadas independentemente do resultado do "teste" que foi feito com o nome do diretório.
Pronto!
Pode ser um exemplo considerado "bobo", mas espero que sirva para se pegar os primeiros conceitos, funções de alguns comandos, estruturação de script, o que é, aliás, o verdadeiro intuito do artigo.
Estou aqui para parabenizá-lo pelo artigo, pois ainda não tinha visto nenhum tutorial que explicasse com clareza essa incrível ferramenta, ficou muito bom e espero que em breve vc estege postando algo mais que faça referência ao mesmo, parabéns pelo ótimo artigo.
Leonardo Berbert Gomes.