Programando em shell script (conceitos básicos)

Estou montando este artigo para ajudar as pessoas que tem interesse em começar a programar em shell script. Não achei nenhuma uma introdução rápida e de fácil entendimento aqui no VOL.

[ Hits: 38.409 ]

Por: Marcello Bontempo Salgueiro em 21/12/2006 | Blog: http://marcello.tranqueira.net


Variáveis



A primeira coisa que devemos saber sobre variáveis é: o que elas realmente fazem basicamente?! Elas guardam informações sobre o sistema e sobre as preferências do usuário. Ela será declarada da seguinte maneira:

$nomedavariavel (caso crie uma variável)

As variáveis de ambiente

São variáveis que são lidas por todos os processos que o shell inicia (sempre declaradas em caixa alta). Variáveis importantes:
  • PATH: uma lista de diretórios que o shell procura pelos executáveis chamados na linha de comando. Ex.:

    # set | grep PATH
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
    /sbin:/bin:/usr/bin/X11

  • HOME: especifica diretório /home/usuário. Ex.:

    # set | grep HOME
    HOME=root

  • USER: especifica o login. Ex.:

    # set | grep USER
    USER=root


  • TERM: declara o tipo de terminal utilizado.

    Próxima página

Páginas do artigo
   1. Variáveis
   2. Aliases
   3. Mão na massa!
Outros artigos deste autor

Escreva poemas com a sua linguagem de programação

Criando um Ubuntu (6.10/7.04) personalizado

Instalação e configuração do Hylafax (servidor de FAX)

Aircrack-ng e sua família para quebrar WEP e WPA1

Leitura recomendada

Pipelines (Canalizadores)

Explorando a entrada de dados com READ em Bash Shell

Bitwise - Escovando os bits

Criando um banner em flash no Linux

Shell - Funções

  
Comentários
[1] Comentário enviado por tuxSoares em 21/12/2006 - 09:37h

Muito fraco, ja existem inumeros artigos desse tipo, acho que foi feito somente para ganhar pontos no rancking.
Mas ta valendo a iniciativa

[2] Comentário enviado por pacman em 21/12/2006 - 09:41h

Bom, é bem resumido, uma coisa interessante de se falar na parte de aliases é que vc pode criar um alias com o mesmo nome de um comando.

alias ls='ls -la'

nesse caso, se vc quiser chamar o comando original e não o alias, vc usa uma contra barra na frente do alias ;-)

[3] Comentário enviado por thelinux em 21/12/2006 - 13:33h

Parabéns pelo artigo. Para quem está inciando no mundo Linux, um artigo como este ajuda bastante. Existem, milhares de documentações sobre Linux e está aqui é mais uma e que ajuda.

Que venha o próximo artigo.

[4] Comentário enviado por tenchi em 22/12/2006 - 00:17h

Também é possível utilizar aritmética nas condicionais:
if ((a>0)) && ((a<=10))
then
echo "A é maior que zero e menor ou igual que 10"
fi
# e também tem o elif...

E no for:
for ((var=1;var<10;var++))
do
echo $var
done

Olha kra, eu comecei a mexer em shell esses tempos, e acho que para um iniciante, ler esse artigo confunde um pouco...
Não estou criticando o seu trabalho, deixo claro aqui, blz?

Falow

[5] Comentário enviado por removido em 22/12/2006 - 08:24h

a linha #!/bin/bash não é necessáriamente obrigatoria, ela somente indica o caminho do interpretador, sem esta linha no seu script, você poderia executalo, chamando o bash com o caminho do script.

O for seta a variavel com cada valor dado separado por espaços, caso o programador queira toda a frase, deve usar ex:

ls -la | while read x;do
echo $x
done

Bom são essas minha observação, no demais esta de bom tamanho para iniciantes.

[6] Comentário enviado por mbsalgueiro em 22/12/2006 - 15:05h

obrigado pela criticas e comentarios aqui! pois somente elogios não se cresce!!!!
tenchi é um pouco complicado para iniciante tb concordo mas tentei fazer de uma forma mais resumida para os iniciante, paraque eles tenham um ponta pé para a inspiração para comecar a programar em shell!! E quem sabe ate ajudar a crescer o SL!!
E continuem postando aqui comentarios crescentes!!!! Sempre são bem vindos...!!! Como sempre digo...: "Quanto mais penso que sei, mais eu percebo que não sei nda!!"

[7] Comentário enviado por yetlinux em 23/12/2006 - 06:21h

Acho que faltou dizer prá que serve o "pipe", vulgo barra vertical "|". Mas isso é para informar quem não sabe. Há outras coisas assim também.

Para primeiro artigo está ótimo, há aqui muitas boas idéias.
O próximo artigo que você escrever sairá ainda melhor, não se preocupe.

[8] Comentário enviado por celsopimentel em 24/12/2006 - 16:28h

Ola! Amigos, gostaria de uma mão para realizar o seguinte script.

tenho um arquivo chamado download.php, no interior dele têm uma data por ex. 24-12-06. quero fazer um script que edite o arquivo download.php e altere a data para um dia após o atual. por ex. se hoje for dia 20-12-06 ele tem que editar o arquivo e colocar a data de dia 21-12-06. Isso é possível????

[9] Comentário enviado por tenchi em 24/12/2006 - 20:03h

celsopimentel, acho que se você pesquisar alguma coisa sobre os comandos sed e tr, vc vai achar a solução deste problema.
Foi mal por não ser mais específico, pois eu também não sei como fazer.
Mas posta aqui se conseguir.

[10] Comentário enviado por celsopimentel em 25/12/2006 - 09:14h

Obrigado Tenchi, valeu! Vou pesquisar.

[11] Comentário enviado por tenchi em 26/12/2006 - 00:33h

Ah, uma coisa que eu não entendi..

Variávei em shell não são declaradas.
Declarar é algo que fazemos comumente em C, pascal, etc.
int j; //c
j:integer; {pascal}
E as variáveis só são tratadas como $var quando queremos o conteúdo delas. Quando atribuímos um valor à ela, usamos só o nome dela mesmo (var="um dois tres"). A menos, é claro, que você use ela em cálculos ((var+1)).
Ah, e acho que um jeito mais prático de verificar o conteúdo se uma variável é:
$ echo $var
Mas esse comando set eu não conhecia. Legal. Bem diferente do set do tcl (atribuição).

Só correções, não críticas. Continue assim.

Falow mais uma vez.

[12] Comentário enviado por jhoumedeiros em 26/12/2006 - 11:06h

Cara gostei... finalmente consegui entender o for... hauhau

Flw!!!

[13] Comentário enviado por mbsalgueiro em 26/12/2006 - 21:12h

Fico feliz jhoumedeiros!!!! =)
espero q continuem postando aqui!!!!!!!
vlw galera!!

[14] Comentário enviado por removido em 27/12/2006 - 12:12h

Parabens pelo artgo!
quanto aos condicionais
são semelhantes aos usados
na linguagem FORTRAN 77

[15] Comentário enviado por minduim em 08/04/2009 - 17:16h

Ola, você sabe como converter String para ineteger ou float em shell script?


Contribuir com comentário