![将应用程序的 bash 脚本输出重定向到文件,保持应用程序交互](https://linux22.com/image/203479/%E5%B0%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20bash%20%E8%84%9A%E6%9C%AC%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BF%9D%E6%8C%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%BA%A4%E4%BA%92.png)
我正在运行一个 bash 脚本,希望偶尔有用户输入以继续处理该脚本。是否可以将脚本输出重定向到文件,同时保持终端输出并保持应用程序交互,即响应我的按键?
答案1
tee
就是为此目的而设计的。我写了脚本sc
:
##!/bin/bash
while [[ $x != "X" ]] ; do
printf "? "
read x
echo "User wrote: $x"
done
然后运行如下:
$ ./sc | tee f
? The first line
User wrote: The first line
? another line
User wrote: another line
? X
User wrote: X
$ cat f
? User wrote: The first line
? User wrote: another line
? User wrote: X
相当粗糙和准备就绪,但它展示了如何tee
关闭文件。
答案2
您可以在 下运行该命令,这将为您捕获script
文件中的完整输出。typescript
请参阅man script
其他选项
script
your_command...
使用 Ctrl/D 退出捕获会话