0

我已经编写了 TCL 脚本来初始化并从 google 签出最新的 repo 目录。但它不会在终端中打印任何内容。我试过打开。

对于开放:

初始化时我有这个......它工作正常

 if { [ catch { set ID [ open "|repo init -u *android_stuff* "] } cErr ] } {
     puts "Error initializing (${cErr})" }

 while { ![ eof ${ID}] } {
     gets ${ID} Line
     puts "Line: ${Line}" }

当以类似方式结帐时....但这不会打印任何东西...

 if { [ catch { set ID [ open "|repo sync -j **"] } cErr ] } {
     puts "Error checking out (${cErr})" }

 while { ![ eof ${ID}] } {
     gets ${ID} Line
     puts "Line: ${Line}" }

我试图用“exec”来实现它,但类似于“open”我无法打印它。

4

1 回答 1

0

你应该把while循环放在一个else子句中:如果你发现一个错误,你只打印一条消息并继续,就好像有一些有效的东西一样$ID

这种使用eof读取一行太多:请参阅http://phaseit.net/claird/comp.lang.tcl/fmm.html#eof

于 2012-06-19T20:36:18.133 回答