The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX för avancerade & Expertanvändare
.
google unix.com



UNIX för avancerade & Expertanvändare Expert-to-experten. Läs avancerade UNIX UNIX-kommandon, Linux operativsystem, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
globala variabler i KLD (FreeBSD) int80h High Level Programming 0 01-17-2008 08:14
fastställa en global variabel i skriptet arunkumar_mca UNIX for Dummies Frågor & Svar 3 10-23-2007 08:46
perl globala variabler reggiej Shell-programmering och Skript 3 08-29-2005 09:18
inställning global variabel för alla användare mästare UNIX for Dummies Frågor & Svar 4 08-15-2002 01:59
Global PATH inställning jxh UNIX for Dummies Frågor & Svar 5 07-20-2001 06:23

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 11-20-2008
gregf gregf is offline
Registered User
  
 

Join Date: Nov 2008
Inlägg: 2
Ställa globala variabler med KLÅ / Linux

Jag använder funktioner i ett manus, och för vissa konstiga skäl EXPORT kommandot doesnt tycks göra mitt variabler globalt.

Den har några idéer?

Jag använder en funktion för att passera några utgångsenergi början en annan med hjälp av röret kommando, t.ex.

Funktion 1 | Funktion 2

Funktion 2 läser värde gått från Funktion ett och sätter några variabler som baseras på dess värde sedan exporterar dem

setStartSeq () (
Läs loggfil
echo "Start Redo log: $ loggfil"
arcPrefix \u003d $ (echo $ loggfil | cut-d_-f1 )"_"$( echo $ loggfil | cut-d_-f2)
startSeq \u003d $ (echo $ loggfil | cut-d_-f3 | cut-d.-f1)
export arcPrefix \u003d $ arcPrefix
export startSeq \u003d $ startSeq
)


Men senare i skriptet en annan funktion försöker att använda ovanstående exporterade variabler och de Arent inställd!

Jag har bekräftat att genom att köra en export-p under senare funktion och alla värden som anges ovan är tomma.

Jag är ny på KLÅ och Linux men har använt export utan problem med kornshell.


Någon hjälp skulle vara mycket uppskattat
  #2 (permalänk)  
Old 11-20-2008
demwz demwz is offline
Registered User
  
 

Join Date: juni 2008
Inlägg: 128
Jag antar att funktioner körs i en subshell beroende på hur du ionvoke dem.
Den subshell är stängd efter utförandet en variabler förlorade. export inte bara fungera från förälder till barn.
  #3 (permalänk)  
Old 11-20-2008
gregf gregf is offline
Registered User
  
 

Join Date: Nov 2008
Inlägg: 2
Ja det gör det, men jag vet inte hur annan gör det.

Jag har en funktion som utvinner data från en databas, som en annan funktion lyder. Detta sparar en startpunkt sekvensnumret.

Sedan script utför olika åtgärder.

Sedan i slutet en annan funktion måste få börja sekvensnumret behandla vissa filer.

Här finns funktioner och hur de kallas. De två första pipelinad är de utvinna / läsa data från databasen, och sedan botten ett behov att få värdet läses av setStopSeq

getLogFile | setStopSeq
copyArc
  #4 (permalänk)  
Old 11-20-2008
stanleypane stanleypane is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 23
Du bör inte använda export att göra variabler inom en funktion blivit global. När en funktion körs, det är variabler bör vara tillgänglig under resten av ditt manus.

Om du åberopar en subshell (medan uttalande?) I en av dina uppgifter, det är en annan historia. Det skulle bidra till att se andra funktioner för att felsöka problemet.

Är du säker på att de värden från Funktion 1 har gått till Funktion 2 när röret? Om du vill passera en variabel till din andra funktionen, jag vill göra det så här:

Kod:
func1 () {
var1=1
}

func2 () {
var2=$1
}

func1
func2 $var1

echo $var2
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 08:10.


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