我想從一個tcl腳本運行一個csh腳本。如何從tcl腳本運行csh腳本?
下面的TCL腳本調用csh腳本
#!/usr/bin/tclsh
set scripts_path /scratch/TCL_scripts/scripts_adders
set synthesis /scratch/TCL_scripts/synthesis.csh
set files [glob -directory $scripts_path *]
split $files
set files [lsort $files]
set i 1
foreach script $files {
puts "hello"
# puts [pwd]
exec /bin/csh -c $synthesis
puts $i
}
和csh文件(的begining)低於:
#!/bin/csh -f
echo abcdefgh
當我只能從我的UNIX終端執行CSH文件,它工作正常。 當我打電話給我的Tcl腳本時,它運行並確實寫入「hello」並打印i,但csh文件未執行,因爲「abcdefgh」從未出現在終端中。我也嘗試了其他命令,而且我總是遇到同樣的問題:當我從Tcl腳本運行它時,csh腳本從未執行過,儘管它直接從終端運行時運行良好。
(我的兩個Tcl腳本來ANS CSH腳本是可執行的)
我應該做些什麼才能從我的Tcl腳本來運行我的CSH腳本呢?
非常感謝您
作爲一個方面說明,對[split $ files]的調用是無關緊要的。首先,分割返回分割列表,而不是保存結果。其次,因爲glob已經將文件名作爲列表返回,並且如果將它視爲一個字符串並對其進行分割,那麼它只會結束使用空格的文件名。 – RHSeeger