[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Atribuindo valor a uma variável
From: |
Julio Cezar Neves - DISB.O |
Subject: |
RES: [shell-script] Atribuindo valor a uma variável |
Date: |
Tue, 3 Sep 2002 11:46:08 -0300 |
Alexander,
na linha
novonome = echo $file | sed s/entremus/matmus/g
existem 2 erros:
1 - Qdo fizer uma atribuição jamais deixe espaço ao lado do sinal de igual.
Assim uma atribuição correta seria:
novonome=echo $file | sed s/entremus/matmus/g
2 - Se vc fizer da forma acima, ele tentará colocar o literal "echo $file |
sed s/entremus/matmus/g" dentro da variável novonome (e assim mesmo com erro
por causa dos caracteres em branco), e não é este o seu desejo. Para colocar
a saída do echo dentro da variável, vc tem que priorizar a execução do
comando, isto é, o cmd tem que ser executado antes da atribuição.
Então, a forma correto de fazê-lo é:
novonome=`echo $file | sed s/entremus/matmus/g`
Outra forma de priorizar é trocar as aspas(`) por uma construção do tipo
$(...), assim:
novonome=$(echo $file | sed s/entremus/matmus/g)
Prefiro usar da 1a. forma por ser suportada por todos os shells. A 2a. não é
suportada pelo bourne shell(sh)
[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070 / 9853-4044
*address@hidden
> Para: <address@hidden>
> cc:
> Assunto: [shell-script] Atribuindo valor a uma variável
>
>
> Olá!
>
> Não consegui renomear meus arquivos usando um loop for.
>
> Parece que o meu problema é na hora de tentar atribuir o
> resultado de um
> comando a uma variável.
>
> Tenho três arquivos: ativarentremus, desativarentremus e
> consultarentremus
>
> O script abaixo me exibe o nome alterado para ativarmatmus, etc:
>
> for file in *
> do
> echo $file | sed s/entremus/matmus/g
> done
>
>
> Aí eu tentei fazer o seguinte:
>
> for file in *
> do
> novonome = echo $file | sed s/entremus/matmus/g
> mv $file $novonome
> done
>
>
> Imaginei que isso funcionaria sem maiores problemas, mas não funciona.
>
> Não consigo atribuir à variável novonome o resultado do
> comando echo...
>
> Tentei colocar entre aspas, algo como:
>
> novonome = "echo $file | sed s/entremus/matmus/g"
>
> Também não deu certo, as resposta que recebo é algo como:
>
> echo ativarentremus | sed s/entremus/matmus/g
>
> O script lê o valor da variável mas não executa o sed.
>
> Tentei separar os comandos: "echo $file" | sed s/entremus/matmus/g
>
> Também não deu certo.
>
> Enfim... existe alguma forma direta de eu atribuir à variável
> novonome o
> resultado do comando echo $file | sed s/entremus/matmus/g
>
> Estou escrevendo o sed errado?
>
> Me parece algo simples pegar o resultado do sed para usar
> como um novo
> nome
> de arquivo, mas não está dando.
>
> Que conceito eu estou ignorando?
>
> Sei que estou sendo meio mala... mas só falta isso para eu conseguir
> facilitar meu trabalho na edição de uns duzentos(!) arquivos.
>
> Abraços!
> Alexander
>
>
>
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
[As partes desta mensagem que não continham texto foram removidas]
---------------------------------------------------------------------
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.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Atribuindo valor a uma variável,
Julio Cezar Neves - DISB.O <=