The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Nyomtatási hiba meg a parancsot Shribigb Shell programozás és Scripting 0 03-06-2009 06:08 PM
tar hiba kilépés késleltetett formában hozzáférhető hiba chayato Linux 1 02-06-2009 12:07 AM
A KSH parancsot - Nyomtatás "ABC" is, hogy hiba sagarjani Shell programozás és Scripting 2 10-08-2008 05:32 PM
Egyéni hiba oldal amikor tomcat hitelesítés sikertelen sebagra UNIX és Linux alkalmazásokhoz 0 05-06-2008 06:10 PM
A parancs nem a329743 A UNIX a fejlett és szakértői Felhasználók 1 10-05-2006 11:08 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 47
Hogyan lehet a nyomtatási hiba és kilép, ha a parancs nem?

Srácok olyan tippeket adott nyomtatási hiba üzenetet stderr és felmondására a parancs nem egy ksh forgatókönyvet? Próbálom null egyes kimeneti fájlokat.

Touch nem alkalmas, ahogy kell null őket.
print ""> fájl nem alkalmas arra van szükség, hogy ellenőrizzék a elsehere, ha 0bytes vagy sem.

Megpróbáltam az alábbi példákat és ezek egyike sem működik megfelelően. Nem akarom, hogy, hogy egy ellenőrzés minden egyes parancs után, mint: --


Kód:
if [[ $? -ne 0 ]];then
   print "error blah blah" >&2
   exit 2
fi

Alább vizsgálatok nem működik helyesen. Én vagyok az ívási kitalálni valamit.


Kód:
OUTFILE=/tmp/out

# Null outfiles. Security already checked

> ${OUTFILE} || print "ERROR: blah blah \n" >&2 ; exit 2   #doesnt work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 ; exit 2 )  #doesn't work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 && exit 2) #doesnt work

if [[ -n "$(> ${OUTFILE} 2>&1)" ]];then
     print "ERROR: blah blah \n" >&2
     exit 2
fi    # doesnt work

Any ideas, vagy ennek alternatíváit?
  #2 (permalink)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 13
Pontosabban a jelentési és felmondására, ez egy kicsit több kondenzált idióma:


Kód:
test $condition || { print "Crap blew up; exiting"; exit 2; }

Te is közvetlenül a vizsgálat eredménye a parancsot:


Kód:
command || { print "Crap blew up; exiting"; exit 2; }

Élvezem, hogy az olvasás hangosan magamban a "vagy te ilyen vagy meghalsz!", Mintha threathening a forgatókönyvet.

Last edited by EagleFlyFree; 04/23/2009 at 03:17 PM..
  #3 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 47
Thanks dude thats dolgoztak, mint egy igézet.

Úgy tűnik, én majdnem ott vagyunk, de nem a helyes ()

Meg tudná magyarázni a különbség a (és) () a parancs csoportosulás? Én is a notied; végén előtt) fontos, különben a következő parancs nem működik.

pl


Kód:
This works and exits if cant null but echos got to here if can.

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2; }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2; }

echo "got to here"

This doesnt work and never gets to echo even if null is successful

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2 }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2 }

echo "got to here"

  #4 (permalink)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 13
() Végrehajtja a nyilatkozatok egy új subshell, önálló állam. () Végrehajtja a dolgok jelenlegi shell.

Példa:


Kód:
(aVariable="hello"); echo $aVariable

ez nem print "hello", mert a változó került be egy új, a Shell, amelynek állapota volt dobni, ha a () kifejezés véget. Gondolj változó korlátozásaitól C; változó él és hal meg benne a blokk, ahol már bejelentették.


Kód:
{aVariable="hello"; }; echo $aVariable

ez kiírja, hogy "hello", mert a változó került az ugyanazon fiktív a következő nyilatkozatot.

Ugyanaz a különbség, mint:

Kód:
sh myScript.sh

és

Kód:
source myScript.sh



Emellett igen, szükség van egy pontosvessző, hogy vessenek véget az utolsó, belül (); ez az, hogy a Shell nyelvtan fogalmát.
Kedves, hogy hogyan tudod ezt sem:

Kód:
if $condition; then $statements; fi

vagy ennek segítségével newlines helyett pontosvesszőt külön szintaxist részből áll:

Kód:
if $condition
then
    $statements
fi

A bash man oldalon, akkor más () (és), mert a szavak helyett a metakarakterek, ami azt jelenti, hogy nem automatikusan jár szó szünetek. Feltehetően ugyanez vonatkozik a többi töltényhüvelyt.

Last edited by EagleFlyFree; 04/23/2009 at 03:14 PM..
  #5 (permalink)  
Old 04-24-2009
lavascript lavascript is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 47
Haver thats igazi nagy és informatív választ. Köszönöm szépen. Az biztos, ami nekem jobban megértsék a héj és nem csak próbálom a dolgokat, amíg dolgoznak
  #6 (permalink)  
Old 04-24-2009
EagleFlyFree EagleFlyFree is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 13
Nem számít, én szeretlek yapping mintegy bash.
A man oldal hosszú, és ijesztő, de a film rajta egyszer-egyszer, te vagy köteles tanulni nagy tidbits mindig.
A történelem és a részek kb readline különösen hideg, és már hasznos és szórakoztató alkalmazás.
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 11:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0