我有一个字符串(作为另一个函数的结果,但为了简单起见,我们现在将它存储在s
中)我想写它< em> out ,通过管道传递给bash
命令。 (它必须是一个管道,命令不接受这种输入作为参数。)
所以问题是,我应该如何调用mycommand
,即...
的内容?
function! MyFunc()
let s = "my string"
execute ... !mycommand --flag
endfunction
答案 0 :(得分:3)
通过这里字符串:
:let s = "my string"
:set shell=/bin/bash
:exe "!cat <<< " . shellescape(s)
输出
my string
通过管道:
:exe "!echo " . shellescape(s) . " | cat "
答案 1 :(得分:1)
你能试试吗
:execute "!\"".s."\" | mycommand"