slackware.linuxbr.org
Menu
   Principal
   Comandos
   Configuração
   Documentos
   Artigos
   Screenshots
   Plataformas
   Downloads
   Contato
   Sobre

Links
   Slackware Linux
   GUS Brasil
   Linux Packages


   Host: LinuxLots
   English Version

Shell Scripts (exemplos)

Para facilitar a sua vida na linha de comando, você também pode criar seus próprios shell scripts, o que é de alguma forma similar aos arquivos .bat do DOS.

Apresentamos aqui alguns exemplos, como este script que recebe o argumento passado pela linha de comando:

  #!/bin/sh
  # buscar: busca arquivo passado como argumento em '/'.

  # verificar se o argumento foi passado
  if [ $# -ne 1 ]; then
     echo 1>&2 "Uso: ./buscar ARQUIVO"
  else
  # comando find recebendo os argumentos
     echo -e "\t*** Resultado(s) da pesquisa: ***"
     find / -name "$1" -print
  fi

  exit 0

Para entender os scripts, é importante ter o conceito das variáveis e testes condicionais específicos do bash.

Algumas variáveis shell:

  • $#: número de argumentos (argc)
  • $*, $@: retorna todos argumentos passados
  • $?: código de retorno do último comando
  • $$: número do processo atual
  • outras: $HOME, $PATH, $SHELL, $TERM, $USER

Caracteres especiais:

  • aspas simples ('): delimita uma string
  • aspas duplas ("): delimita mas resolve variáveis
  • crase (`): delimita mas executa a string
  • \: caracter de escape
  • ( ): agrupa comandos, permite rodar subshells paralelas
  • (( )): avalia a expressão aritmética e permite manipulação de variáveis C-type
    for (( i=0; i<5; i++)) do echo $i; done;

 Testes condicionais ([ expr] ou test expr):
-e: verifica se existe
-d: verifica se é um diretório
-f: verifica se é um arquivo
-r: verifica permissão de leitura
-g: verifica permissão SGID
-u: verifica permissão SUID
-w: verifica permissão de escrita
-x: verifica permissão de execução
-L: verifica se é um link
-eq: é igual (==)
-ne: é diferente (!=)
-gt: é maior (>)
-ge: é maior ou igual (>=)
-lt: é menor (<)
-le: é menor ou igual (<=)
-s: verifica se tamanho do arquivo não é 0
-z: verifica se valor da string é 0
-n: verifica se valor da string não é 0

Outro exemplo, um menu em bash simples (while, read, case...) utilizando here-document para desenhar a tela ao invés de echo (Mais info: LG 57, por Ben Okopnik).

Neste script, que instala pacotes tgz em distros sem suporte, procuro exemplificar o uso de funções e subshell no bash.

Tutoriais você encontra em UNIXhelp, LDP, entre outros. Exemplos e scripts: SHELLdorado, SF.net, etc.

Alguns shell scripts que considero úteis:

ren: altera o nome dos arquivos de acordo com certas regras (ex: .htm para .html).
lcf: altera o nome dos arquivos para letras minúsculas (./lcf *).

Estes e outros scripts estão no pacote kscripts, na seção Downloads deste site.

Os scripts encontrados no /etc do Slackware são shell scripts globais. Como usuário, você pode criar scripts locais, por exemplo:

.xinitrc (startx com o window manager de sua escolha), .bash_profile (que será executado no login), .bash_logout (que será executado no logout).

Para mais informações: man bash e man sed :)


©2002 r_linux & misfit
Slackware® is a registered trademark of Slackware Linux, Inc. Linux is a registered trademark of Linus Torvalds.

XHTML 1.0 Transitional