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 > 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
bash vs sh msb65 Shell-programmering och Skript 10 09-18-2008 02:25
bash och ksh: variable förlorade i loop i bash? Estienne Shell-programmering och Skript 2 08-25-2008 02:09
passerar rörlig från bash till perl från bash script arsidh Shell-programmering och Skript 10 06-04-2008 12:25
Varför genererar "aska och bash" olika utgång för samma bash script? s. Murat Shell-programmering och Skript 0 05-26-2008 07:19
Bash under AIX 5.3 taupin AIX 4 03-21-2008 06:03

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 10-12-2008
mindOnMy $ mindOnMy$ is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 2
Question Vad detta gör i bash: $ (pid: -)

Som jag förstår det, innebär detta
om pid är
a) unset, eller
b) inställd på noll
sedan ersätta med det värde till höger på minustecken - vilket är null

Detta förvirrar mig eftersom
a) Jag tänkte att om en variabel inte är inställd på något är det automatiskt null. Om inte då vad som är en oinvigde variabel inställd på?
b) Om variabeln redan är satt till noll, så varför ersätta det med ett null?

Jag ser detta på rad 74 i filen / lib / lsb / init-funktioner (jag använder Hardy Heron Ubuntu)
Här är ett utdrag från filen:
Kod:
if [ -z "${pidfile:-}" ]; then 
    pidfile=/var/run/${1##*/}.pid 
fi
  #2 (permalänk)  
Old 10-12-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.723
Koden är att se till att om pid variabel unset det blir noll (eller noll-längd).
unset och null är olika. null innebär att variabeln finns i minnet och är "", unset innebär bash aldrig hört talas om det förut.

I kodning, whenver du skapar en ny variabel som du vill ställa in den till ett känt tillstånd. I C du ställer in en sträng med noll-längd, ett heltal till noll. Detta är samma idé.
  #3 (permalänk)  
Old 10-12-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: februari 2007
Location: Innsbruck, Österrike
Inlägg: 1884
Beviljade, null och noll-längd är olika, men tanken expanderar dem på samma sätt. Så egentligen finns det ingen anledning för kod som den är. Det kan helt enkelt vara:
Kod:
if [ -z "$pidfile" ] ;then 
  # blah blah
fi
Det finns faktiskt ett enklare sätt.
Kod:
pidfile=${pidfile:-/var/run/${1##*/}.pid}
  #4 (permalänk)  
Old 10-13-2008
mindOnMy $ mindOnMy$ is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 2
ahh, jag förstår. Nu är alla vettigt. thnx!
Closed Thread

Komihåglista

Taggar
variabel expansion programmering bash

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 09:35.


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