On 29/02/2016 19:53, Andrew Jones wrote: > +exit_fixup () Can you rename the function to run_qemu or something like that? Otherwise it's not clear that it actually runs "$@". > + errors=$("${@}" 2>&1 1>&${stdout} | tee >(cat - 1>&2); exit ${PIPESTATUS[0]}) Whoa! :) So stdout goes to {stdout} and from there to the real stdout; stderr instead is tee'd to stderr and $errors. Is the "tee" and "cat" necessary? Can you just use printf somewhat like: # stdout to {stdout}, stderr to $errors errors=$("$@" 2>&1 1>&${stdout}) ret=$? printf '%s\n' "$errors" >&2 ? Or something like that (for example I'm not sure if you need the \n). In either case, stdout and stderr can be mixed. > + temp_file RUNTIME_arch_run <(echo "#!/bin/bash"; cat scripts/arch-run.bash "$TEST_DIR/run") Please use a pipe instead of a <(...): (echo "#! /bin/bash" cat scripts/arch-run.bash "$TEST_DIR/run") | tempfile RUNTIME_arch_run by changing this in temp_file: local file="$2" gzip - < $file to local file="${2--}" gzip -c "$file" Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html