私はTCLスクリプトからbashスクリプトを呼び出そうとしていますが、bashスクリプトから終了ステータスを取得するか、少なくともTCLスクリプトに何かを戻す必要があります。スクリプトが正常に実行されたかどうかを確認できます。助言がありますか?tclスクリプトからbashスクリプトを呼び出してステータスを返す/終了する
答えて
http://wiki.tcl.tk/execを参照してください - 「ディスカッションを表示」ボタンをクリックしてください - あなたが求めていることを正確に行う方法の非常に詳細な例があります。何がが必要なのcatch
set status [catch {exec script.bash} output]
if {$status == 0} {
puts "script exited normally (exit status 0) and wrote nothing to stderr"
} elseif {$::errorCode eq "NONE"} {
puts "script exited normally (exit status 0) but wrote something to stderr which is in $output"
} elseif {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
puts "script exited with status [lindex $::errorCode end]."
} else ...
最終的なリンクは、Tcl 8.6のドキュメントの例です:http://www.tcl.tk/man/tcl8.6/TclCmd/exec.htm#M29 –
nice。 Tcl 8.5のドキュメントには同じ例があります:http://www.tcl.tk/man/tcl8.5/TclCmd/exec.htm#M28 –
TCLでの私の経験が限られている引用任意の複雑な操作を行う必要がある場合は特に、あると警告します時折ダブリングする。しかし、@ jkの答えで始まるリンクの後には、this pageがあり、errorCode変数とこの状況で役に立つ可能性のある関連する事項について説明しました。ここでのerrorCodeの使用方法を示す簡単な例です:
TCL:
set ret_val [catch { exec /bin/bash /path/to/bash_script }]
set errc $errorCode
set ret_val [lindex [split $errc " " ] 2]
puts $ret_val
bash_script、上に参照されるように:
:の出力につながっ#!/bin/bash exit 42
- 1. 共通の終了ステータスをPython、bash、tclスクリプト
- 2. ランチパッドからbashスクリプトを呼び出す
- 3. Bashスクリプトからpythonスクリプトを呼び出す
- 4. 再起動する代わりにBashスクリプトと終了を呼び出す
- 5. PHPスクリプトを終了する関数を呼び出す
- 6. TCLからpythonスクリプトを呼び出して、アトミックにファイルを作成する
- 7. スクリプトからスクリプトを呼び出す
- 8. qsubを使用して別のbashスクリプト内でbashスクリプトを呼び出す
- 9. Bashスクリプトで関数を呼び出す
- 10. php sshでbashスクリプトを呼び出す
- 11. シェルスクリプト内のPHPスクリプトから終了ステータスを取得します。
- 12. bashファイルからスクリプトを呼び出すと、iPythonのembed()が自動的に終了します
- 13. ユーザーが終了したいときにbashスクリプトからSTDINを終了する
- 14. 複数の引数を持つ別のtclスクリプトからtclスクリプトを呼び出す
- 15. C++からのawkスクリプトの呼び出しは "bozo:wait_for"で終了します
- 16. 形式終了bashスクリプト
- 17. Bash - 子スクリプトからの親スクリプトの終了
- 18. Javaからのリダイレクションでbashスクリプトを呼び出す
- 19. bashスクリプトからapplescriptメソッドを呼び出す方法は?
- 20. AWK - 私は最終的にこれに呼び出すbashスクリプトを書きましbashスクリプト
- 21. スクリプトから呼び出されたバックグラウンドプロセスが終了した後に終了する
- 22. スクリプト終了時の呼び出し関数
- 23. bashスクリプトからtclスクリプトを使用して一連のコマンドを実行
- 24. スクリプトを呼び出す際にrequestcycleを聞いてサイクル終了時にスクリプトを削除する
- 25. 終了前にbashスクリプトが終了する
- 26. bashスクリプトが終了しない
- 27. GNU並列を使用しているときにbashスクリプトからpythonスクリプトを呼び出す
- 28. AppleScriptからPythonスクリプトを呼び出す
- 29. PyQtスクリプトからpy.testを呼び出す
- 30. Gradleスクリプトからコマンドラインツールを呼び出す
であるそれはあなたがどのようにTCLでトラップ戻り値を、またはどのようにbashのから終了ステータスを返すために求めているかどうかは明らかではありません。 –
@Simon Hibbs:理想的には、tclshのbashスクリプトから終了ステータスを取得したいと考えています。 – tgai