我在上一个问题中看到,放置exec > >(tee -ai file)
会捕获脚本中显示的所有内容,同时仍然显示它。这样做是可行的,但是能够“快照”终端中显示的内容而不一直记录它会更好
答案 0 :(得分:3)
您可以在这里做三件事:
您可以简单地将输出设置为以下文件:
bash printer.sh > saving_file
注意:如果您在上一个会话中已有一个名为save_file的文件,请使用>> (将新的输出追加到现有文件中而不覆盖现有数据)而不是> (将覆盖先前存储的所有内容都将丢失)
您可以使用nohup:
nohup bash printer.sh
这两个命令都将保存脚本输出的所有内容。
您可以做的第三件事就是只需使用script
命令,只需执行以下操作即可:
script saving_file
因此,执行脚本命令后在终端中执行的任何操作都将保存到名为save_file的文件中。如果您想停止从终端发送所有内容,只需执行exit
,您将可以正常使用终端。
您还可以使用nohup并从shell脚本中写入文件,如果您要求的不是其他内容,那么我建议您使用类似以下代码的内容。
var=$(echo 'hello world')
echo $var > saving_file # this will write 'hello world' to a file named saving _file
echo $var # this will display hello world