[英]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.