是否有方法在exec调用之间保持文件重定向命令?

例如,有两个bash脚本。在脚本1中,我正在设置将stdout和stderr重定向到文件。然后执行脚本2。

脚本1

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

脚本2

echo "something else

在日志文件中,只显示来自脚本1的echo命令,而不显示脚本2。

something

是否有方法在exec调用之间保持文件重定向命令?

最佳回复

在你的例子中修复几个小错误,我没看到你描述的问题。

# 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