Вы находитесь на странице: 1из 5

Autor:MarcosPauloFerreira<undefinido@gmail.com>

Data:09/09/2006

TRUQUES PARA TRATAMENTO DE VARIÁVEIS EM SHELL SCRIPT

As variáveis do sistema servempara armazenar algumvalor (como toda variável), mas existem algunsrecursosinteressanteseúteisnomododeusartaisvariáveis.Oqueaprendemosemalguns tutoriais,équeparadeclararumavariáveldosistema,fazemos:

NOME="VALOR"#Aquipodemosusarvaloresdeoutrasvariáveis

NOME='VALOR'#NOMEteráovalorigualaVALOR

NOME=`COMANDO`#NOMEteráovalordasaídadecomando

Istoéobásico,agorateremosalgumascoisasmaisinteressantes:

1.Retirarpartefinaldeumastring

VAR="minha_foto.jpeg"

echo${VAR%.jpeg}

Saída:minha_foto

Comopodemosver,".jpeg"seráexcluído.Indicamosoqueseráexcluídodepoisdocaracter'%'.

2.Retirardavariávelaparteinicialdovalordado

VAR="http://www.vivaolinux.com.br"

echo${VAR#http://}

Saída:www.vivaolinux.com.br

Indicamosoqueseráexcluídodepoisdocaracter'#'

3.Mostrartudodepoisdeumacertaposição

Saída:www.g00gle.com

Depoisdo':'indicamosoíndice.ComoéemC,oprimeiroíndiceé0,osegundoé2

etc.

4.Mostrarentrealgunscaracteres

,ooitavoé7

VAR="123456789"

echo${VAR:2:5}

Saída:34567

Primeiro, faz­se o índice 2, que começa no caracter '3'. No índice 5, a contagemjá começa no

índice2(5caracteresapartirdoíndice2),aímorrenocaracter'7'.

5.EliminaocaractermostradoetudoaESQUERDA

VAR="daemonio@vivaolinux"

echo${VAR#*@}

Saída:vivaolinux

Bom,aquiindicamosocaracteraserdeletadoetudoasuaesquerda,depoisdastring"#*".

6.EliminaocaractermostradoetudoaDIREITA

Comoomundonãoéfeitosomentedecanhotos,

VAR="daemonio@vivaolinux"

echo${VAR%@*}

Saída:daemonio

Jáaqui,indicamosocaracteraserdeletadoetudoasuadireita,entreastring"%*".

7.Excluiratéumcertovalor

Estadaquiéigualaodecima,sóquepodemosindicarstringsaoinvésdesomenteumcaracter.

7.Excluiratéumcertovalor Estadaquiéigualaodecima,sóquepodemosindicarstringsaoinvésdesomenteumcaracter.
7.Excluiratéumcertovalor Estadaquiéigualaodecima,sóquepodemosindicarstringsaoinvésdesomenteumcaracter.

EXC=":senha"

VAR="root:senha:/bin/bash"

echo${VAR%%$EXC*}

Saída:root

Oqueseráexcluídotemqueficarentre"%%"e'*'.

8.Excluirdeumcertovaloratéofinal

Agoraéaocontrário,excluiatéofinal.

EXC="senha:"

VAR="root:senha:/bin/bash"

echo${VAR##*$EXC}

Saída:/bin/bash

Oqueseráexcluídodeveficardepoisdo"##*".

9.Troca­troca(destrings:­)

Istonaverdadefunfaquenemocomandosed.

VAR="c1:c2:c3"

echo${VAR/:/x}

Saída:c1xc2:c3

Trocaaprimeiraocorrênciade':'por'x',paratrocartudo:

echo${VAR//:/x}

Usa­seduasbarras.

Nadaimpededetrocarporstrings:

echo${VAR//:/­CC­}

Saída:c1­CC­c2­CC­c3

10.Mostrarocomprimentodavariável:

VAR="tenho19caracteres"

echo${#VAR}

Saída:19

11.Listarnomesdevariáveis

Paralistartodasasvariáveisdeseusistemaquecontenhatalnome,faça:

echo${!va*}

Mostrarátodasasvariáveisquecomeçamcom"va".Aípodesair:vaca,vacuo,vassoura,etc.

12.Umououtro

echo${VAR:­"eunãoexisto"}

Saída:eunãoexisto

SeVARfornula,mostra"eunãoexisto",senãofornula,mostraoconteúdodela.

VAR="euexisto"

echo${VAR:­"eunãoexisto"}

Saída:euexisto

Agora,VARnãoénula,poristomostraoconteúdodela.

Bom,istoétudopessoal!