1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/builtins/fc2.0 213738 2010-10-12 18:20:38Z obrien $ 23df4d8b0SPeter Avalosset -e 33df4d8b0SPeter Avalostrap 'echo Broken pipe -- test failed' PIPE 43df4d8b0SPeter Avalos 53df4d8b0SPeter AvalosP=${TMPDIR:-/tmp} 63df4d8b0SPeter Avaloscd $P 73df4d8b0SPeter AvalosT=$(mktemp -d sh-test.XXXXXX) 83df4d8b0SPeter Avaloscd $T 93df4d8b0SPeter Avalos 103df4d8b0SPeter Avalosmkfifo input output error 113df4d8b0SPeter AvalosHISTFILE=/dev/null ${SH} +m -i <input >output 2>error & 123df4d8b0SPeter Avalosexec 3>input 133df4d8b0SPeter Avalos{ 143df4d8b0SPeter Avalos # Command not found, containing slash 153df4d8b0SPeter Avalos echo '/var/empty/nonexistent' >&3 163df4d8b0SPeter Avalos # Read error message, shell will read new input now 173df4d8b0SPeter Avalos read dummy <&5 183df4d8b0SPeter Avalos # Execute bad command again 193df4d8b0SPeter Avalos echo 'fc -e true; echo continued' >&3 203df4d8b0SPeter Avalos read dummy <&5 213df4d8b0SPeter Avalos read line <&4 && [ "$line" = continued ] && : ${rc:=0} 223df4d8b0SPeter Avalos exec 3>&- 233df4d8b0SPeter Avalos # Old sh duplicates itself after the fc, producing another line 243df4d8b0SPeter Avalos # of output. 253df4d8b0SPeter Avalos if read line <&4; then 263df4d8b0SPeter Avalos echo "Extraneous output: $line" 273df4d8b0SPeter Avalos rc=1 283df4d8b0SPeter Avalos fi 293df4d8b0SPeter Avalos} 4<output 5<error 303df4d8b0SPeter Avalosexec 3>&- 313df4d8b0SPeter Avalos 323df4d8b0SPeter Avalosrm input output error 333df4d8b0SPeter Avalosrmdir ${P}/${T} 343df4d8b0SPeter Avalosexit ${rc:-3} 35