2017-01-12 20 views
0

現在のスクリプトからスクリプト(tclscript)を呼び出しています。この「無効なコマンド名エラー」を参照すると、tclスクリプトはパッケージの正しいバージョンがインストールされているかどうかをチェックします。

#!/bin/tclsh 
# i am doing this for multiple packages in a loop 
set list {/usr/local/script} 
lappend list -check 
lappend list -package 
lappend list tcl-devel 
lappend list version 

[eval exec $list] 

出力:

invalid command name " 
checking the version [ ok ] #expected output 
-checks successful!   #expected output 
" 
    while executing 
"[eval exec $list]" 

は、私は、この「無効なコマンド名エラー」を取得する理由を理解いけない誰もが、問題は、あなたが成功したコマンドを実行して、持ってきたということです複数の引数を持つ別のtclスクリプトからtclスクリプトを呼び出す

+1

evalの周りに括弧を削除してください...リスト。 –

答えて

0

を助けることができます結果は返され、[ブラケット]eval execの周りに置くので、コマンドの名前としてこれらの結果を使用しようとしています。ブラケットを削除するか、結果を引数として使用するようにコマンド名を前に置いてください。

set list … 
# Leaving out the details of how you build the list 

eval exec $list 
set list … 
# Leaving out the details of how you build the list 

set result [eval exec $list] 
puts "result is \"$result\"" 
+0

あなたのTclのバージョンが現在サポートされているバージョンであれば、 'eval exec $ list'を' exec {*} $ list'に切り替えてください。 –

関連する問題