Im修改負責安裝的shell腳本。腳本有幾個功能,所有的輸出都必須重定向到一個日誌文件。 但是,在每個功能的開始,我必須在終端打印一些類似「啓動功能」的東西。會發生什麼呢,當我在一個代碼塊中調用一個函數時,因爲我將該代碼塊的輸出重定向到一個日誌文件,所有東西都被重定向,甚至是我想要在終端中顯示的第一個信息。一個功能的Shell腳本 - 強制輸出到函數內的命令行
實施例:
echo -n "running script"
if ( {
command1 && function_xpto;
} >> $LOG_FILE 2>&1
);
then
echo "SUCCESS"
else
echo "FAILED"
exit 1
fi;
當我調用的代碼塊,裏面的一切功能(我明白:對函數的調用的
function_xpto() {
echo -n "starting function ...."
if ( {
command1 && command2 && ... && commandN;
} >> $LOG_FILE 2>&1
);
then
echo "SUCCESS"
else
echo "FAILED"
exit 1
fi;
}
實施例爲什麼)被重定向。
所以,我想強制一個命令(例如:回聲)發送到終端,或至少,不要發送到日誌文件。
在此先感謝。
謝謝。有一個問題,它強制發送到終端?或者發送到終端和日誌文件? –
只是終端。如果你想發送相同的輸出到兩個不同的文件,你需要使用'tee':'echo -n「Starting function ...」| tee -a/dev/tty'將'echo'的輸出發送到'/ dev/tty'和標準輸出可能是),'tee'把它的標準輸入寫到標準輸出(就像'cat'一樣),而且也寫入任何名字作爲參數傳遞的文件,'-a'選項確保所有命名文件被附加到,而不是用'/ dev/tty','-a'可能是不必要的,因爲你不能截斷那個特定的設備。 – chepner
謝謝。我剛開始學習她兩天前,所以幾乎所有的東西都是我的新東西。謝謝 –