echo to stdout并追加到文件

时间:2017-06-15 20:59:33

标签: bash shell echo

我有这个:

Cfile.obj : warning LNK4099: PDB 'lnk{3FE844DB-7378-4485-9D93-6B1B48386536}.tmp' was not found with 'Cfile.obj' or at 'C:MyApp\x64\Debug\lnk{3FE844DB-7378-4485-9D93-6B1B48386536}.tmp'; linking object as if no debug info

但是这应该仅附加到文件,而不是写入stdout。 如何写入stdout并附加到同一bash行中的文件?

3 个答案:

答案 0 :(得分:7)

这样的东西?

echo "all done creating tables" | tee -a  "${SUMAN_DEBUG_LOG_PATH}"

答案 1 :(得分:3)

使用tee命令 $ echo hi | tee -a foo.txt 嗨 $ cat foo.txt 嗨

答案 2 :(得分:1)

通常使用tee,但是只使用bash的版本:

#!/bin/bash

function mytee (){
    fn=$1
    shift
    IFS= read -r LINE
    printf '%s\n' "$LINE"
    printf '%s\n' "$LINE" >> "$fn"
}


SUMAN_DEBUG_LOG_PATH=/tmp/abc
echo "all done creating tables" | mytee "${SUMAN_DEBUG_LOG_PATH}"