shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Variaveis no sed


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Variaveis no sed
Date: Thu, 6 Jan 2005 10:14:01 -0300

Usando aspas, apóstrofos e barra invertida
Para usar literalmente um caractere especial sem que o Shell interprete seu
significado, coloque o caractere entre aspas ou entre apóstrofos ou coloque
uma barra invertida antes dele. Seus usos característicos são melhores
definidos assim:
*       Aspas - Quando se coloca um caractere especial entre aspas, o Shell
ignora o seu significado, exceto no caso deste caractere ser um cifrão ($),
uma crase (`), ou uma barra invertida(\).
*       Apóstrofos - Os apóstrofos são mais restritivos. Todos os caracteres
entre apóstrofos são ignorados.
*       Barra Invertida - O Shell ignora um e somente um caractere que segue
a barra invertida. Quando colocada ao final da linha, o Shell interpreta a
barra invertida como um aviso de continuação da linha, devolvendo um prompt
secundário (PS2) na linha seguinte da tela. Mas, note bem, isto ocorre
porque o <ENTER> não foi visto pelo Shell por estar seguindo a contra barra.
                                Se você for criativo, descobrirá muitos usos
para a barra invertida.Vejamos um unalias imediato: suponha que você tenha
feito: alias rm='rm -i', caso você execute: \rm <arq>, o arquivo <arq> será
removido sem solicitar a confirmação, porque quando você colocou a
contrabarra (\), você escondeu da interpretação do Shell o r do comando rm,
então ele não executou o alias.
Exemplos:
$ echo *
 Arq1 Arq2 ....
$ echo \\       A 1ª barra invertida inibiu a atuação da 2ª
\
$ echo \        O Shell  não viu o <ENTER> e
>  <^c> devolveu um prompt secundário (>)
$ echo "\"      As aspas não inibem a interpretação da \
> <^c>
$ echo Estou escrevendo uma linha compacta.
Estou escrevendo uma linha compacta
$ echo Assim    não   se       escreve    uma    linha    espacejada.
Assim não se escreve uma linha espacejada.      Os brancos são
significativos para o Shell
$ echo  "Estou     escrevendo   uma       linha     espacejada."
Estou     escrevendo   uma       linha     espacejada.

Então, conforme você viu, para que as variáveis sejam interpretadas pelo
shell, é necessário que elas estejam entre aspas e não entre apóstrofos.

Julio 
:wq

| -----Mensagem original-----
| De: Max Leandro Angelo [mailto:address@hidden]
| Enviada em: quinta-feira, 6 de janeiro de 2005 10:45
| Para: address@hidden
| Assunto: [shell-script] Variaveis no sed
| 
| 
| 
| Ola
| 
| Estou fazeendo uma funcao q o valor recebe duas variaveis e 
| insere num 
| comando sed, mas o sed, naum reconhece minhas variaveis, pq 
| sua sintaxe 
| fica entre ''.... como posso usar variaveis em uma sintaxe no sed??
| 
| meu script eh o seguinte:
| 
| #./bin/bash
| 
| addpath_install ()
|         {
|                 case $1 in
|                   zlib)  cat .installpath | sed 's/$1/$(echo 
| $1 \t $2/g' 
|  > teste ;;
|                 esac
|         }
| 
| addpath_install zlib /usr/local
| 
| --------------------------------------------------------------
| --------------------------------
| 
| Minha ideia, eh verificar qual o nome da biblioteca (zlib) que foi 
| informado, e inserir o caminho informado na segunda variavel, 
| dentro do 
| arquivo .installpath, substiuindo a linha inteira onde estava 
| a primeira 
| variavel, pelo conjunto formado pela primeira variavel + 
| segunda variavel :)
| 
| Esse script somente elimina a primeira variavel, q estah na 
| linha... eu 
| queria uma q apagasse a linha, e inserisse o conjunto... :(
| 
| -- 
| Max Leandro Angelo
| Suporte Tecnico
| SoftExpert Quality Software
| +55 (47) 2101-9900
| http://www.softexpert.com
| 
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]