Duplicate the source file descriptor SRCFD to the destination file descriptor DSTFD.
If the predefined options --test or --show-program are enabled: print a line on the standard error channel describing the operation. If the predefined option --test is enabled: the file descriptor is still duplicated. Predefined options.
Let’s see how we can use a FIFO for reading and writing with two duplicate file descriptors:
mbfl_declare_program mkfifo mbfl_file_enable_remove function program_mkfifo () { local PATHNAME=${1:?} shift 1 local MKFIFO mbfl_program_found_var MKFIFO mkfifo || exit_because_program_not_found "$MKFIFO" --mode=0600 "$@" "$PATHNAME" } declare TESTFILE=/path/to/fifo.ext declare INFD=3 OUFD=4 DUP_INFD=5 DUP_OUFD=6 declare LINE1 LINE2 LINE3 mbfl_location_enter { program_mkfifo "$TESTFIFO" mbfl_location_handler "mbfl_file_remove ${TESTFIFO}" mbfl_fd_open_input_output $INFD "$TESTFIFO" mbfl_location_handler "mbfl_fd_close ${INFD}" mbfl_fd_open_output $OUFD "$TESTFIFO" mbfl_location_handler "mbfl_fd_close ${OUFD}" echo 1234 >&${OUFD} read -u ${INFD} LINE1 mbfl_location_enter { mbfl_fd_dup_input $INFD $DUP_INFD mbfl_location_handler "mbfl_fd_close ${DUP_INFD}" mbfl_fd_dup_output $OUFD $DUP_OUFD mbfl_location_handler "mbfl_fd_close ${DUP_OUFD}" echo 5678 >&${DUP_OUFD} read -u ${DUP_INFD} LINE2 } mbfl_location_leave echo 90 >&${OUFD} read -u ${INFD} LINE3 } mbfl_location_leave echo $LINE1 $LINE2 $LINE3
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.