2016-07-08 124 views
0

我可以從我的Konsole轉到tclsh運行相同的代碼,但是當我嘗試使用tcl腳本運行它時,它沒有輸出。無法通過tcl腳本運行相同的tcl代碼?

我有一個名爲name文件,其中包含此

my name is dev my name is vaibhav

當我通過tclsh運行命令,它給所需的輸出。

命令是exec grep "dev" name和輸出是my name is dev

但是當我通過名爲call.tcl TCL腳本運行它,它不會有任何輸出!它的內容是: -

#! /usr/bin/tclsh 
exec grep "dev" name 

我已在第一行驗證了tclsh的地址,並且該文件存在那裏。我正在使用redhat-release-5Client-5.5.0.2
任何幫助將是可觀的。

感謝
開發

回答

2

當你使用互動tclsh,從exec命令的結果將被退回,默認情況下,他們將在控制檯打印。

但是,當您作爲獨立腳本運行時,它不會被打印到控制檯(stdout),除非您手動使用puts命令來打印它。

puts [exec grep "dev" name] 

另外,還可以將其保存到一個變量使用set命令

set result [exec grep "dev" name] 
puts $result 
+0

此外,它通常是用grep從Tcl的錯誤; Tcl既擅長搜索文件本身,也傾向於通過grep來處理失敗以查找任何異常。 –