"Shell" (外部評価システム)
ExternalEvaluateの使用法
- ExternalEvaluate["Shell",code] はオペレーティングシステムのシェルでコマンド列を実行し,Wolfram言語式として結果を返す.
- ExternalEvaluate["Shell"form,code] はコマンド列を実行し,指定された form で結果を返す.form には"Expression","StandardOutput","StandardError","ExitCode","Association"が指定できる.
例題
すべて開くすべて閉じる例 (2)
コマンド"ExitCode"が0でない場合,Failureオブジェクトが返される:
>とタイプして,ExternalEvaluateを使って評価を行うShellコードのセルを取得する:
Fileラッパーを使ってファイルに含まれるコードを実行する:
Unixシステムの場合,ファイルが実行可能であることを確認する:
CloudDeployを使ってコードを配備し,CloudObjectから直接コードを実行する:
URLラッパーを使ってオンラインでホストされたコードを直接実行する:
スコープ (20)
結果から"StandardOutput"と"StandardError"を抽出する:
"ReturnType"を使うと異なる戻り値の型を指定することができる:
セッションオプション (10)
"ReturnType" (3)
“Evaluator" (2)
コマンドオプション (8)
"Command" (5)
Unixシステムでは,ファイルが実行可能であることを確認する:
Fileラッパーを使ってファイルからコードを実行する:
URLラッパーを使って,オンラインでホストされるコードを直接実行する:
CloudObjectにコードを置く:
"TemplateArguments" (2)
コマンドを実行するとき,TemplateExpressionを行内に埋め込むことができる:
"TemplateArguments"を使ってTemplateSlotを明示的に埋めることができる:
2個以上の引数が必要な場合はListを使うことができる:
テンプレートスロットに名前を付け,Associationを使うと,テンプレートに名前付きの引数を渡すことができる:
特性と関係 (2)
FindExternalEvaluatorsを使って,使用中のマシンで利用できるEvaluatorsを見付ける:
"Evaluator"を使って,マシンのシェルを手動で指定する:
Windowsシステムでは,Powershell.exeは有効な"Evaluator"である:
RunProcessを使ってもシェルコマンドを実行することができるが,インタラクティブな出力はしない:
考えられる問題 (2)
プログラムが入力を求めている場合,ExternalEvaluateは妨げることができない:
ユーザの入力を必要とする外部コマンドを実行しているとき,非インタラクティブモードで実行することをお勧めする:
ExternalEvaluateはリアルタイムで出力している: