JavaScript for Automation (JXA) でサブプロセスを開始し、改行、シェル メタなどを含む可能性のある文字列をそのサブプロセスの stdin に送信したいと考えています。これに対する以前の AppleScript アプローチでは、bash の<<<
演算子、文字列連結、および文字列を使用しquoted form of
ていました。quoted form of
エッジ ケースをすべて取得できると信頼できる同等の JavaScript があれば、同じアプローチを使用できます。そのために正規表現の方法を調査しています。
しかし、JXA からアクセスできるので、 、、および を直接 unistd.h
呼び出してみませんか?パラメータとして2つの整数の配列を取る必要があるように見えますが、私が試したことはどれもうまくいきませんでした:$.pipe
$.fork
$.execlp
$.pipe
ObjC.import('unistd')
$.pipe() // Error: incorrect number of arguments
$.pipe([]) // segfault
$.pipe([3,4]) // segfault
$.pipe([$(), $()]) // segfault
var a = $(), b=$()
$.pipe([a,b]) // segfault
$.pipe($([a,b])) // NSException without a terribly helpful backtrace
$.pipe($([$(3), $(4)])) // segfault
var ref = Ref('int[2]')
$.pipe(ref)
ref[0] // 4, which is close!
助言がありますか?