1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/execution/redir1.0 211408 2010-08-16 22:23:19Z jilles $ 23df4d8b0SPeter Avalostrap ': $((brokenpipe+=1))' PIPE 33df4d8b0SPeter Avalos 43df4d8b0SPeter AvalosP=${TMPDIR:-/tmp} 53df4d8b0SPeter Avaloscd $P 63df4d8b0SPeter AvalosT=$(mktemp -d sh-test.XXXXXX) 73df4d8b0SPeter Avaloscd $T 83df4d8b0SPeter Avalos 93df4d8b0SPeter Avalosbrokenpipe=0 103df4d8b0SPeter Avalosmkfifo fifo1 fifo2 113df4d8b0SPeter Avalosread dummy >fifo2 <fifo1 & 123df4d8b0SPeter Avalos{ 133df4d8b0SPeter Avalos exec 4>fifo2 143df4d8b0SPeter Avalos} 3<fifo2 # Formerly, sh would keep fd 3 and a duplicate of it open. 153df4d8b0SPeter Avalosecho dummy >fifo1 163df4d8b0SPeter Avalosif [ $brokenpipe -ne 0 ]; then 173df4d8b0SPeter Avalos rc=3 183df4d8b0SPeter Avalosfi 193df4d8b0SPeter Avaloswait 203df4d8b0SPeter Avalosecho dummy >&4 2>/dev/null 213df4d8b0SPeter Avalosif [ $brokenpipe -eq 1 ]; then 223df4d8b0SPeter Avalos : ${rc:=0} 233df4d8b0SPeter Avalosfi 243df4d8b0SPeter Avalos 253df4d8b0SPeter Avalosrm fifo1 fifo2 263df4d8b0SPeter Avalosrmdir ${P}/${T} 273df4d8b0SPeter Avalosexit ${rc:-3} 28