#!/bin/bash
cd $(mktemp -d) # just for ideone, so we'll have write permissions
function my_function() {
echo "result 1"
echo "result 2" >&3
echo "result 3" >&4
}
my_function 3>foo.txt
# the stdout is left untouched and will be printed.
# the channel 3 is redirected to a file, and 4 is ignored
echo "----"
cat foo.txt
IyEvYmluL2Jhc2gKCmNkICQobWt0ZW1wIC1kKSAjIGp1c3QgZm9yIGlkZW9uZSwgc28gd2UnbGwgaGF2ZSB3cml0ZSBwZXJtaXNzaW9ucwoKZnVuY3Rpb24gbXlfZnVuY3Rpb24oKSB7CiAgICBlY2hvICJyZXN1bHQgMSIKICAgIGVjaG8gInJlc3VsdCAyIiA+JjMKICAgIGVjaG8gInJlc3VsdCAzIiA+JjQKfQoKbXlfZnVuY3Rpb24gMz5mb28udHh0CiMgdGhlIHN0ZG91dCBpcyBsZWZ0IHVudG91Y2hlZCBhbmQgd2lsbCBiZSBwcmludGVkLgojIHRoZSBjaGFubmVsIDMgaXMgcmVkaXJlY3RlZCB0byBhIGZpbGUsIGFuZCA0IGlzIGlnbm9yZWQKCmVjaG8gIi0tLS0iCgpjYXQgZm9vLnR4dA==