我正在嘗試修改某人在shell中爲unix創建的腳本。此腳本主要用於在沒有人爲交互的支持服務器上運行,但是我需要製作另一個腳本以允許用戶輸入信息。所以,它只是修改爲舊版本的用戶輸入。但我遇到的最大問題是試圖將錯誤日誌和回聲保存在日誌文件中。該腳本有很多,但我希望在終端上顯示這些腳本,並將它們發送到指定的日誌文件中,以便日後查看。向終端和文件日誌發送回顯和錯誤
什麼我是這樣的:
exec 1> ${LOG} 2>&1
這條線幾乎都發送到日誌文件。這很好,但我也有人試圖在腳本中輸入信息,並且它將所有內容發送到日誌文件,包括提示所需的回顯。這一行也在腳本的開頭,但更多地閱讀stderr和stdout消息。我想:
exec 2>&1 1>>${LOG}
exec 1 | tee ${LOG} But only getting error when running it this "./bash_pam.sh: line 39: exec: 1: not found"
我都去了現場such as this來解決這個問題,但我不理解爲什麼它不打印兩者。我插入它的方式只是將它發送到日誌位置而不是發送給終端,或者發送給終端,但是日誌中沒有任何東西被持久化。
編輯:一些解決方案,爲此提到,某些修復程序將在bash中工作,但不在/ bin/sh中。
如果我理解正確,你只希望在stdout中顯示錯誤並記錄到文件中? –
好吧,我希望回聲來到終端,但同時,想要發送到日誌位置的回聲和錯誤。 –
「回聲」你的意思是沒有錯誤輸出,這是什麼不清楚。 –