【发布时间】:2014-02-08 09:59:18
【问题描述】:
我正在尝试从 makefile 中同时执行一个 shell 脚本,并将所有输出都转到标准输出,但是当我这样做时,换行符会变得乱码,我发现的唯一可靠的修复方法是 reset。
制作文件:
all: t1 t2 t3 t4
t1 t2 t3 t4:
@./test.sh true
test.sh:
#!/bin/bash
script -q /dev/null "$@" 2>&1 > /dev/null 2>&1
调用:
$ make -j
没有你期望的输出,但有时它会破坏终端,我必须reset。
有时换行和回车在运行后不起作用:
Devbox:Desktop user$ time make -j
real 0m0.019s
user 0m0.019s
sys 0m0.022s
Devbox:Desktop user$
从脚本中删除 script 并将该行替换为 "$@" 可以使其正常工作,但我正在使用脚本来保留命令的颜色输出。
LOG=$(script -q /dev/null "$@" 2>&1 | tr -d '\r' | cat)
【问题讨论】: