[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
- RES: [shell-script] Variaveis no sed,
Julio Cezar Neves - DATAPREVRJ <=