The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Tilldela utgång till en variabel jpmena Shell-programmering och Skript 3 03-27-2008 04:39
Tilldela utgång kommandostrukturen till en variabel med skal Sankar Reddy Shell-programmering och Skript 6 02-28-2008 03:01
anvisa nawk produktion till skal variabel user_prady Shell-programmering och Skript 6 11-29-2007 04:01
anvisa kommandot produktion till ett skal variabel kprattip Shell-programmering och Skript 2 07-09-2007 05:01
Kommando produktion till en variabel. videsh77 Shell-programmering och Skript 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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 06-26-2006
oma04 oma04 is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 3
Tilldela utgång kommandostrukturen till en variabel

Hej,

Jag försöker ge utdata från ett kommando till en variabel och sedan concat den med en annan sträng, men håller det skriva över den ursprungliga strängen istället för att lägga om till slutet av strängen.

Innehållet i test.txt -> Det här är en test

var1 \u003d "" head-n 1 test.txt `"
echo $ var1 (Detta är ett test)

var1 \u003d $ var1 "123"
echo $ var1 (123s är ett test [i stället för: Detta är en test123)

Frågan har något att göra med den första raden. Om jag bara tilldela en sträng så här:
var1 \u003d "Detta är en test", då det hela går till, men när jag försöker tilldela utdata från ett kommando till en variabel, inte lägga det inte strängen ordentligt.

Någon som vet hur man tar sig runt detta?

Tack!
  #2 (permalänk)  
Old 06-26-2006
blowtorch's Avatar
BLÅSLAMPA blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: Dec 2004
Ort: Singapore
Inlägg: 2350
Prova det så här:

Kod:
/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 (permalänk)  
Old 06-27-2006
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Gober extraordinär
  
 

Join Date: Jul 2001
Ort: Portland, OR, USA
Inlägg: 1584
Modern Bourne shell varianter stödja $ (kommando) notation också, vilket gör reden och, enligt min mening, är mer vilsam för ögonen.

Vissa, som bash, kan du göra roliga saker som denna \u003d $ (<file.txt) få tag på innehållet i file.txt i variabeln "detta".
  #4 (permalänk)  
Old 06-27-2006
blowtorch's Avatar
BLÅSLAMPA blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: Dec 2004
Ort: Singapore
Inlägg: 2350
Jag håller med där, men jag använde back-bud eftersom det är vad OP användas samtidigt ställa frågan. Du * kan * boet kommandon med hjälp backquotes också, men antalet flykt chars skulle öka med varje nivå.
  #5 (permalänk)  
Old 06-27-2006
oma04 oma04 is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 3
Tack för båda era svar.

blåslampa - Jag har provat den kod som du har gett, men det slutade med samma resultat -> 123s är ett test

Jag använder Korn Shell som levereras med Microsoft Services for Unix Applications (SUA) lägg på komponenter till Windows Server 2003 R2.

Finns det ett kommando som jag kan använda för att infoga en sträng i den andra strängen - antingen i mitten eller slutet? Till exempel skulle man räkna antalet tecken i "Det här är en test" och sedan lägga till efter sedan 14. Karaktär.
  #6 (permalänk)  
Old 06-27-2006
oma04 oma04 is offline
Registered User
  
 

Join Date: juni 2006
Inlägg: 3
Thumbs up

Hittade frågan!

Som alltid, med dessa typer av problem, var det några mindre irritation som orsakade den - en vagnretur / radmatning i test.txt filen efter strängen.

Om jag gör en wc-c på filen det skulle ge mig 16 istället för 14 (2 extra för CRLF).

Tack för din hjälp!

Jag har ändrat min kod att använda var1 \u003d $ (var1) 123 (tack blåslampa) notation och även var1 \u003d $ (<test.txt) (tack macosta) notation, som ser renare.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 06:41.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0