|
From: Stephane CHAZELAS on 14 Jun 2008 04:44 2008-06-14, 08:28(+00), Matthew Lincoln: > I am not sure about on how to specify that a second command should only be execute in case > that the first commnd fails/succeeds. > > When I enter: > > cmd1 | gzip -f ... && cmd2 > > Is then cmd2 executed only if cmd1 is finished successfully or if gzip is finished successfully? > > What if I want cmd2 only to execute if both (cmd1 and gzip) end successfully? > > What about the other way: cmd2 should only be executed if > > a) cmd1 failed > > b) cmd1 or gzip failed? [...] With the zsh shell: setopt extendedglob cmd1 | gzip (( ${pipestatus[(I)^0]} )) || cmd2 Or: cmd1 | gzip (( $pipestatus[1] || $pipestatus[2] )) || cmd2 See question 11 in comp.unix.shell FAQ: http://cfaj.freeshell.org/shell/cus-faq-2.html#11 for more details. -- St�phane
|
Pages: 1 Prev: Get the md5sum of every 64MB block in a large file using bash. Next: zsh shell string question |