我有这样的:回显到标准输出,并追加到文件
echo "all done creating tables" >> ${SUMAN_DEBUG_LOG_PATH}
但应该只是追加到该文件,不写入stdout。 如何写入标准输出并追加到同一条bash文件中?
我有这样的:回显到标准输出,并追加到文件
echo "all done creating tables" >> ${SUMAN_DEBUG_LOG_PATH}
但应该只是追加到该文件,不写入stdout。 如何写入标准输出并追加到同一条bash文件中?
使用tee
命令
$ echo hi | tee -a foo.txt
hi
$ cat foo.txt
hi
哦,废话,我忘了问,这会发送stderr到TTY和文件? –
通常开球时使用,但只使用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}"
它写入标准输出,这是文件 –
嗯好吧,我想你是对的..我怎么能管道标准输出到“控制台”/当前的TTY呢?你知道我在问什么:) –