[LUGOS] bash - set -e
Blaz Podrzaj
b at thz.net
Fri Jul 6 08:21:22 CEST 2007
Uff, grdo. Ze moja varianta je grda ampak je definitivno bolj splosna kot tale
;) No, kakor za koga. Pa 'set -e' ti tukaj prav tako nic ne koristi, edino ce
imas naprej v skripti kaksno simpl komando.
lp,B
Quoting Egon Kocjan <egon at krul.ath.cx>:
> Hm, sem ?e malo razmi?ljal, pa sem zgruntal dokaj splo?no re?itev:
>
> set -e
> pid=$$
> (rm /kjkjdfkj || kill $pid) | cat
>
> lp
> egon
>
>
> Blaz Podrzaj wrote:
>> Aha, v bistvu tebe muci tale -e (sem spregledal). Naceloma tale 'rm x' je
>> naceloma "Simple Command" ampak ta bi se morala koncati s control
>> operatorjem.
>> Tvoja se ne, ker se nadaljuje v pipo in to ni vec "Simple Command"
>> ampak je ze
>> "Pipeline" in tukaj ti -e nic ne pomaga. Ce bi delal redirekcijo v
>> file cemir
>> bi se ti rad izognil bi -e funkcioniral ker se redirekcija smatra kot del
>> "Simple Command".
>>
>> Torej preostane ti tole spodaj -e pa ti v tem konkretnem primeru ne koristi.
>>
>> lp,B
>>
>> Quoting Blaz Podrzaj <b at thz.net>:
>>
>>> Hoj,
>>>
>>> V tvojem drugem primeru teoreticno nic ni crknilo... ti si nekaj naredil in
>>> STDOUT tega kar si naredil stocil v cat. Dela! Prvi del pipe ni
>>> vrgel nic na
>>> STDOUT, drugi del je pa ta nic cisto lepo pozrl in izpljunil dalje
>>> kar je OK.
>>>
>>> Rabis kvecjemu en pogoj v prvem delu ter 'exit 1' iz skripte.
>>>
>>> Tole bi bila "agli" resitev tocno za tvoj primer:
>>>
>>> ([ -f "xx" ]&&rm xx|cat||exit 1)||echo x
>>>
>>> ...vse kar je v oklepajih predstavlja tvojo skripto.
>>>
>>> lp,B
>>>
>>> Quoting Egon Kocjan <egon at krul.ath.cx>:
>>>
>>>> ?ivjo
>>>>
>>>> Recimo imam dve skripti:
>>>>
>>>> set -e
>>>> rm /kjkjdfkj
>>>>
>>>> $ sh x.sh || echo x
>>>> rm: cannot remove `/kjkjdfkj': No such file or directory
>>>> x
>>>> $
>>>>
>>>> To je ok primer.
>>>>
>>>>
>>>> Zdaj pa bolj zanimiv primer:
>>>>
>>>> set -e
>>>> rm /kjkjdfkj | cat
>>>>
>>>> $ sh x.sh || echo x
>>>> rm: cannot remove `/kjkjdfkj': No such file or directory
>>>> $
>>>>
>>>> Kako bi naredil, da bi celotna zadeva crknila, kljub temu da je samo en
>>>> del pipe izraza crknil. Rad bi se izognil pisanju v fajle, itd., torej
>>>> nekaj elegantnega. Pipe izrazi naj bi bili poljubno dolgi (ve?krat |)
>>>>
>>>> Lp
>>>> egon
>>>>
>>>> _______________________________________________
>>>> lugos-list mailing list
>>>> lugos-list at lugos.si
>>>> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> lugos-list mailing list
>>> lugos-list at lugos.si
>>> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
>>>
>>>
>>
>>
>> _______________________________________________
>> lugos-list mailing list
>> lugos-list at lugos.si
>> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
>
> _______________________________________________
> lugos-list mailing list
> lugos-list at lugos.si
> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
>
>
More information about the lugos-list
mailing list