Bash

在 exec 呼叫之間保持文件重定向

  • December 2, 2019

有沒有辦法在 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

引用自:https://unix.stackexchange.com/questions/555270