是否有一個可分配給變量的文件名(即不是像&1
這樣的魔術內置shell令牌),它會讓我重定向到stdout
?重定向到bash中的stdout
我最後想要做的是運行像這樣在cron腳本:
LOG=/tmp/some_file
...
some_command 2>&1 >> $LOG
echo "blah" >> $LOG
...
便利,這讓我通過重定向到/dev/null
後關閉日誌時的噪音我敢肯定,沒有什麼可能會失敗(或至少沒有我關心的東西!)而無需重寫整個腳本。是的,關閉日誌並不是最好的做法 - 但是一旦這個腳本正常工作,沒有什麼可以想象的出錯,並且不需要任何人不想讀取的兆字節日誌信息。
5年後意外失敗的情況下,仍然可以通過翻轉開關再次打開日誌。另一方面,在編寫和調試腳本時,它涉及從shell手動調用它,如果它只是將輸出轉儲到控制檯,那將是非常好的。這樣我就不需要手動登錄日誌文件tail
。
換句話說,我正在尋找的是類似/proc/self/fd/0
的bash-talk,我可以指定給LOG
。碰巧,/proc/self/fd/0
在我的Linux機器上工作得很好,但我想知道是否沒有這樣的東西內置到bash中(這通常會是可取的)。
您似乎在尋找[this](http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to-log-file-from-within-bash-script-itself)。 – devnull
偉大的使用案例,但問題標題的措辭並沒有做到公平 - 也許是'持久重定向stdout和stderr在bash中'的說法。此外,考慮到找到的解決方案,我建議更新問題以使其專注於_intent_而不是您最初的解決方案嘗試。 – mklement0