bash - 如何在 Unix 中同时写入文件和打印到终端?

标签 bash file-io terminal unix macports

我有一个小的 bash 函数可以将我的 Macports 输出记录到一个文件中(因为安装经常会吐出一些很容易在终端噪音中丢失的小花絮),然后我只需将文件 cat 到终端:

function porti {
    command sudo port install $@ >> $1.log 2>&1; cat $1.log
}

有没有办法同时执行此操作?

顺便说一句 我通过 $@ 进行安装,但只有 $1 作为文件名,这样我就可以执行以下操作:

porti git-gore +bash_completion

并且只获取文件 git-core.log 但是其他人可能更喜欢在文件名中包含变体...

最佳答案

通常的解决方案是使用tee(1):

sudo port install $@ 2>&1 | tee -a $1.log

做你想做的事

关于bash - 如何在 Unix 中同时写入文件和打印到终端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2917401/

相关文章:

Bash shell 脚本从文件名中查找丢失的文件

Python以utf-8编码逐行读取大文件

jquery - 如何强制 jquery 终端保持相同的大小?

php - 使用 PHP 打开 PTY 的最佳方式

bash - bash中的 "else if"和 "elif"有什么区别?

Linux Shell 脚本什么目录名和?方法?

linux - 如何在 Linux 中递归运行 mv 命令

c - 如何设置默认文件 I/O 位置

c++ - 为什么将 char 数组复制到结构中时 memcpy 不起作用?

Python:无法在 Windows 中连续捕获键盘中断?