【发布时间】:2010-01-17 17:12:40
【问题描述】:
我不确定这是否可能,但我想做的是运行一个 bash 命令并将输出存储在一个变量中并像我正常启动该命令一样显示它。这是我的代码:
VAR=`svn checkout $URL`
所以我想将输出存储在 VAR 中并且仍然可以看到结果(并且因为 svn checkout 需要很长时间,所以我不能在之后执行 echo $VAR..)
谢谢
【问题讨论】:
我不确定这是否可能,但我想做的是运行一个 bash 命令并将输出存储在一个变量中并像我正常启动该命令一样显示它。这是我的代码:
VAR=`svn checkout $URL`
所以我想将输出存储在 VAR 中并且仍然可以看到结果(并且因为 svn checkout 需要很长时间,所以我不能在之后执行 echo $VAR..)
谢谢
【问题讨论】:
如果命令是从终端运行的,你可以这样做:
VAR=$(svn checkout $URL | tee /dev/tty)
【讨论】:
v=$(for i in $(seq 20); do echo $i; sleep 0.2; done | tee /dev/tty)测试了上面的内容,而你使用了sleep 1? :-)
您不必调用外部tee:
VAR=$(svn checkout $URL) && echo $VAR
甚至:
VAR=$(svn checkout $URL); echo $VAR
【讨论】:
svn 需要很长时间,并且 OP 希望实时查看 svn 命令的输出,而不是在它结束之后。他甚至在问题中这么说:-)