2016-09-05 20 views
0

終了した私の最初のTCL/TKプロジェクトに取り組んでいますが、私は、スクリプトを実行するたびに、それは私に、このエラーを示しエラー:子プロセスが異常

Error in startup script: child process exited abnormally 
while executing 
"exec which [string tolower $css]" 
(procedure "::Ui::scriptSettings" line 16) 
invoked from within 
"::Ui::scriptSettings $::Ui::scriptSettings" 
(procedure "::Ui::Ui" line 15) 
invoked from within 
"::Ui::Ui" 
(file "./init.tcl" line 266) 

、それは、この行に常にある

$installationPath insert 0 [exec which [string tolower $css]] 

$ CSSがこれはエラーがトリガされた手順である

は/ usr/binフォルダに存在するパスです

foreach css $::Ui::CSS { 
    set cssScriptLabel [labelframe $settingsCssFrame.cssLabel$i -text $css] 
    set optionalArgument [label $cssScriptLabel.optArg$i -text "Optional Arguments"] 
    set optArgEntry [entry $cssScriptLabel.optArgEntry$i] 

    set outFileLabel [label $cssScriptLabel.outFile$i -text "OutFile/OutDir"] 
    set outFileEntry [entry $cssScriptLabel.outFileEntry$i] 
    set installationPathLabel [label $cssScriptLabel.installLabel$i -text "Intallation Path"] 
    set installationPath [entry $cssScriptLabel.installPath$i] 
    $installationPath delete 0 end 
    $installationPath insert 0 [exec which [string tolower $css]] 
    grid $cssScriptLabel -pady 5 -columnspan 1 
    grid $optionalArgument $optArgEntry -sticky news 
    grid $outFileLabel $outFileEntry -sticky news 
    grid $installationPathLabel $installationPath 
    incr i; 
} 

私は何をしたいwhich呼び出しがプログラムを見つけるために失敗しているようですね$ CSS

+0

そして、何ん ''ショーあなたがで手動でそれを入力しますシェルプロンプト? –

答えて

2

のパス名を入力ボックスにテキストを置換することです。それが見つからないと、ゼロ以外の終了コードで終了し、Tclはそれを(正しく!)問題として解釈し、エラーを発生させます。 catchまたはtryでこれらのエラーを処理できます。

(構文失策のようなというように、物事を含め すべてエラーをキャッチ)の代わりに catch
try { 
    $installationPath insert 0 [exec which [string tolower $css]] 
} trap CHILDSTATUS {} { 
    # No such program; recover here... 
} 

if {[catch { 
    $installationPath insert 0 [exec which [string tolower $css]] 
}]} { 
    # No such program; recover here... 
} 
関連する問題