The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Atribuir a saída em uma variável jpmena Programação Shell Script e 3 03-27-2008 04:39
Atribuir a saída de comando para uma variável em casca Sankar reddy Programação Shell Script e 6 02-28-2008 03:01
atribuindo nawk saída a casca variável user_prady Programação Shell Script e 6 11-29-2007 04:01
atribuindo comando variável de saída para um reservatório kprattip Programação Shell Script e 2 07-09-2007 05:01
Comando de saída para uma variável. videsh77 Programação Shell Script e 8 12-16-2004 06:06

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-26-2006
oma04 oma04 is offline
Usuário
  
 

Join Date: Jun 2006
Posts: 3
Atribuir a saída de comando para uma variável

Oi,

Estou tentando definir o output de um comando para uma variável e, em seguida, concat-lo com outra corda, porém, ele mantém sobrescrevendo a string original, em vez de adicionar ao final da string.

Conteúdo do teste.txt -> Este é um teste

var1 \u003d "` head-n 1 `teste.txt"
echo $ var1 (Isto é um teste)

var1 \u003d $ var1 "123"
echo $ var1 (123s é um teste [em vez de: Esta é uma test123)

A questão tem algo a ver com a primeira linha. Se eu simplesmente atribuir uma string como esta:
var1 \u003d "Este é um teste", então todas as obras, mas quando tento definir o output de um comando para uma variável, que não traz para a cadeia corretamente.

Alguém sabe como resolver isso?

Obrigado!
  #2 (permalink)  
Old 06-26-2006
blowtorch's Avatar
maçarico blowtorch is offline Forum Advisor  
Adepto
  
 

Join Data: dezembro 2004
Local: Singapura
Posts: 2.350
Experimente-o assim:
Código:
/tmp$ cat test.txt
This is a test
This is also a test
/tmp$ var1="`head -n 1 test.txt`"
/tmp$ echo $var1
This is a test
/tmp$ var1=${var1}123
/tmp$ echo $var1
This is a test123
/tmp$
  #3 (permalink)  
Old 06-27-2006
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Join Date: Jul 2001
Localização: Portland, OR, E.U.A.
Posts: 1.584
Moderna Bourne shell variantes apoiar $ (comando) notação, bem, o que permite nidificação e, na minha opinião, é mais fácil sobre os olhos.

Alguns, como o bash, permitir-lhe fazer coisas divertidas como esta \u003d $ (<ficheiro.txt) para pegar o conteúdo de ficheiro.txt na variável "presente".
  #4 (permalink)  
Old 06-27-2006
blowtorch's Avatar
maçarico blowtorch is offline Forum Advisor  
Adepto
  
 

Join Data: dezembro 2004
Local: Singapura
Posts: 2.350
Concordo, mas eu usei-o de volta cita como isso é o que o OP utilizados durante a pergunta. * * Você pode usar comandos ninho backquotes tão bem, mas o número de escapar chars aumentaria com todos os níveis.
  #5 (permalink)  
Old 06-27-2006
oma04 oma04 is offline
Usuário
  
 

Join Date: Jun 2006
Posts: 3
Obrigado por tanto de suas respostas.

maçarico - Tentei o código que você tem dado, mas acabou por ficar com o mesmo resultado -> 123s é um teste

Estou usando o Korn Shell, que vem com o Microsoft Services for Unix Applications (SUA) adicionar componentes para o Windows Server 2003 R2.

Existe um comando que posso usar para inserir uma seqüência para a outra corda - ou no meio ou no final? Por exemplo, seria contar o número de caracteres em "Isto é um teste" e, em seguida, acrescente, em seguida, após 14. Personagem.
  #6 (permalink)  
Old 06-27-2006
oma04 oma04 is offline
Usuário
  
 

Join Date: Jun 2006
Posts: 3
Thumbs up

Encontrado o problema!

Como sempre, com estes tipos de problemas, foi ligeiramente incómodo que estava causando-lo - um retorno de carro / alimentação de linha do arquivo teste.txt após a string.

Se eu fazer um wc-c sobre o arquivo que me daria 16 em vez de 14 (2 extra para o CRLF).

Obrigado por sua ajuda!

Eu mudei de código para utilizar o var1 \u003d $ var1) (123 (graças maçarico) e também a notação var1 \u003d $ (<test.txt) (graças macosta) notação, o que parece mais limpo.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 10:36.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0