Bash
在 exec 呼叫之間保持文件重定向
有沒有辦法在 exec 呼叫之間保留文件重定向命令?
例如,有兩個 bash 腳本。在腳本 1 中,我正在設置 stdout 和 stderr 到文件的重定向。然後執行 script2。
腳本1
exec &> >(tee "$logs_file") echo "something" exec "./script2.sh"
腳本2
echo "something else
在日誌文件中,僅出現來自腳本 1 的回顯命令,但不出現腳本 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