Avaleht
uus teema   vasta Tarkvara »  Linux & UNIX »  Sisendi kontroll enne [] ja expr käivitamist märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
LauriKaks
HV kasutaja

liitunud: 09.04.2003




sõnum 24.10.2008 11:16:41 Sisendi kontroll enne [] ja expr käivitamist vasta tsitaadiga

Probleem: Sisendisse tuleb igasugust jama - numbreid, täppe, eripidi ülakomasid. Kõike mõeldavat.
Sealt on vaja välja filtreerida sobiva kujuga read. Iseenesest lihtne:

if test `expr $sisend : "$muster"` -eq 0
  then exit
  else tee muud vajalikku


Nutuseks läheb olukorras, kus $sisend on VägaJamaKuubis ja expr ei suuda sellega midagi peale hakata: "test: -eq: unary operator expected"
Küsimus: kuidas püüda kinni kas expr viga (et seljuhul ka töö lõpetataks) või sisend filtreerida muu tehnikaga?
Kommentaarid: 16 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 16
tagasi üles
vaata kasutaja infot saada privaatsõnum
troglodyte
Kreisi kasutaja
troglodyte

liitunud: 09.08.2002




sõnum 24.10.2008 11:39:38 vasta tsitaadiga

Ennekõike võiksid kasutada vahemuutujat ning kontrollida eraldi nii expr ebaõnnestumist (muutja on tühi string) ja mustri kattumist (muutuja on > 1).
Teine variant oleks expr ebaõnnestumise korral printida 0:
bash:
  1. if test `expr $sisend : "$muster" || echo 0` -eq 0

_________________
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LauriKaks
HV kasutaja

liitunud: 09.04.2003




sõnum 24.10.2008 12:14:51 vasta tsitaadiga

Suur tänu. Töötab.
Ma ise jõudsin juba tcl ja catch kasutamiseni... Oleks tulnud ilmselgelt äärmiselt soliitne lahendus :P

Edit: valetasin. "test: too many arguments" . Naljakas, et käsurealt nagu töötab. Skripti sees tõrgub.
Kommentaarid: 16 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 16
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Linux & UNIX »  Sisendi kontroll enne [] ja expr käivitamist
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.