簡體   English   中英

重擊:打印程序輸出到文件,不在屏幕上

[英]Bash: printing program output to file, not on screen

我有一個bash文件可以為我旋轉一些服務器。 我希望所有正在運行的服務器生成的程序std輸出都保存在文件中,而不是由bash在屏幕上打印。 這就是我編寫bash文件的方式:

#!bin/sh

rm -rf database.db

go run server.go -typ=server -id=Server1 -host=localhost -port=9998 | tee logs/Server1.log &
go run server.go -typ=server -id=Server2 -host=localhost -port=9999 | tee logs/Server2.log &
go run server.go -typ=server -id=Server3 -host=localhost -port=9998 | tee logs/Server3.log ;

當我運行bash my_script.sh ,輸出確實已寫入.log文件,但是相同的輸出仍打印在屏幕上。 我該如何解決?

tee命令將輸出重定向到標准輸出和文件。

如果您想將日志重定向到僅文件,請使用> like my_command > out_file

您可以直接將stdout發送到文件,而無需在shell腳本中添加任何tee命令。

例如。 如果您的Shell腳本名為database.sh,則在終端執行

./database.sh > output.txt

上面的命令將刪除output.txt的任何現有內容

要么

./database.sh >> output.txt

這會將輸出附加到output.txt的內容(如果有)

如果您希望多次運行shell腳本並保留每次運行的日志,則后者將很有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM