2016-07-15 160 views
0

我在cygwin下的TCL模式下運行Vivado,注意到我沒有得到任何輸出以回報我輸入的一些命令。
據我所知,不返回任何東西的命令似乎是非內置命令或需要操作系統交互的命令。
考慮下面的例子:交互式TCL外殼在cygwin中沒有顯示輸出

$ vivado -mode tcl 
puts HelloTcl 

****** Vivado v2015.4.2 (64-bit) 
    **** SW Build 1494164 on Fri Feb 26 04:18:56 MST 2016 
    **** IP Build 1491208 on Wed Feb 24 03:25:39 MST 2016 
    ** Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. 

HelloTcl 
puts 2 
2 
expr 1 + 2 
puts 5 
5 
help synth_design 
read_vhdl 
ERROR: [Common 17-163] Missing value for option 'files', please type 'read_vhdl -help' for usage info. 

package require Tcl 
pwd 
exit 
exit 
INFO: [Common 17-206] Exiting Vivado at Fri Jul 14 13:44:28 2016... 

其中沒有返回預期的輸出的命令是expr 1 + 2help synth_designpwd(以及可能package require Tcl)。
情況與「正常」tclsh相同。 任何人都可以幫助我理解這種行爲的原因是什麼?

我的操作系統是Win7 Pro 64bit。一切工作正常與cmd或Powershell。當在Linux下的終端中運行Vivado時,這種行爲也是預期的。

+1

在expr的情況下,沒有'puts'即'puts [expr 1 + 2]' –

回答

1

看起來,vivado只是在你明確要求的時候寫出數值,這與標準的交互式tclsh不同,也是寫出每個命令的結果(假設它不是空字符串)。你需要寫一個明確的puts […]

puts [expr 1 + 2] 
puts [pwd] 

只要你知道它,我想這不是太大的處理。只是有點煩人。

+0

至於_why_,因爲它們使用自己的read-evaluate-loop並且不包含打印步驟。 –

+0

奇怪的是,當我在cmd/powershell或我的Fedora VM中的終端中運行時,Vivado的行爲與交互式tclsh的預期相同。 「意外行爲」只能在cygwin中看到。 (我更新了我的問題以添加此信息。) – damage