2010-01-17 92 views
17

我不确定是否有可能,但我想要做的是运行bash命令并将输出存储在变量中并显示它,就好像我一样正常启动命令。这里是我的代码:显示Bash命令的输出并将输出保留在变量中

VAR=`svn checkout $URL` 

所以我要存储在VAR输出,仍然可以看到的结果(因为svn签需要很长的时间,我不能只是做后回声$ VAR ..)

感谢

回答

17

如果命令是从终端上运行,你可以这样做:

VAR=$(svn checkout $URL | tee /dev/tty) 
+1

尔加,打我给它按秒! – 2010-01-17 17:18:26

+0

也许是因为我用'v = $(for i in $(seq 20); do echo $ i; sleep 0.2; done | tee/dev/tty)'测试了上述内容,并且您使用了'sleep 1'? :-) – 2010-01-17 17:20:09

+0

完美,正是我所需要的。谢谢! – Selmak 2010-01-17 17:20:45

2

您不必调用外部tee

VAR=$(svn checkout $URL) && echo $VAR 

甚至:

VAR=$(svn checkout $URL); echo $VAR 
+0

我认为这个想法是'svn'需要很长时间,而OP想要实时查看'svn'命令的输出,而不是在结束之后。他甚至在问题中这么说:-) – 2010-01-17 17:55:07

+1

我想我需要在literacyoverflow上获得一些帮助! – 2010-01-17 21:39:36

相关问题