vim のsystem
関数のドキュメントには、2 番目の引数について次のように書かれています。
{input} を指定すると、この文字列がファイルに書き込まれ、stdin としてコマンドに渡されます。
それから私が理解したのは、あなたのsystem
電話が次のように見えた場合:
call system('node something.js --file', 'here is some text')
実行されるコマンドは次のようになります。
node something.js --file some/temp/file
そしてその内容としてsome/temp/file
テキストhere is some text
を持ちます。これをテストするために、vim コマンドを実行しました (2 行目が結果です)。
:echo system('cat', 'here is some text')
here is some text
わかりました、それは正しいようです。2 番目のテスト:
:echo system('echo', 'here is some text')
<blank line>
一時ファイルの名前を取得する代わりに、空白行を取得しました。process.argv
さらに、 node.js スクリプトで印刷すると、 ['node', 'path/to/something.js', '--file']
.
{input}
引数の使用方法について何が欠けていますか? では機能しているように見えますが、自分のスクリプトでは機能しcat
ないのはなぜですか?echo