1

Is there a way to persist file redirection commands between exec calls?

For example, there are two bash scripts. In script 1, I am setting up redirection of stdout and stderr to file. Then exec-ing script2.

script1

exec &> >(tee "$logs_file")
echo "something"
exec "./script2.sh"

script2

echo "something else

Inside log file only the echo commands from script 1 appear but not script 2.

something

Is there a way to persist file redirection commands between exec calls?

1
  • You've accepted my answer (thank you). Have you worked out why it wasn't working for you originally?
    – roaima
    Dec 4, 2019 at 6:49

1 Answer 1

0

Fixing a couple of minor errors in your example, I don't see the problem you describe

# Set up the scenario
mkdir /tmp/555270
cd /tmp/555270

cat <<'EOF' >script1
#!/bin/bash
logs_file=logs_file
exec &> >(tee "$logs_file")
echo "something"
exec "./script2"
EOF

cat <<'EOF' >script2
#!/bin/bash
echo "something else"
EOF

chmod a+x script?
rm -f logs_file

# Run the script
./script1
something
something else

# Examine the log file
cat logs_file
something
something else

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.