我不确定是否可能,但我想做的是运行一个 bash 命令,并将输出存储在一个变量中,同时像正常启动命令一样显示它。这是我的代码:
VAR=`svn checkout $URL`
所以我想将输出存储在VAR中并仍然看到结果(因为svn checkout需要很长时间,所以我不能立即在其后执行echo $VAR..) 谢谢如果命令是从终端运行的,您可以执行以下操作:
VAR=$(svn checkout $URL | tee /dev/tty)
您不必调用外部的tee
:
VAR=$(svn checkout $URL) && echo $VAR
VAR=$(svn checkout $URL); echo $VAR
svn
需要很长时间,而且OP想实时看到svn
命令的输出,而不是在它结束后。他甚至在问题中这样说 :-) - Alok Singhal
v=$(for i in $(seq 20); do echo $i; sleep 0.2; done | tee /dev/tty)
进行测试,而你使用了sleep 1
? :-) - Alok Singhal