管道字符串到函数中的bash命令

时间:2016-12-20 13:03:17

标签: string bash function vim pipe

我有一个字符串(作为另一个函数的结果,但为了简单起见,我们现在将它存储在s中)我想它< em> out ,通过管道传递给bash命令。 (它必须是一个管道,命令不接受这种输入作为参数。)

所以问题是,我应该如何调用mycommand,即...的内容?

function! MyFunc()
    let s = "my string"
    execute ... !mycommand --flag
endfunction

2 个答案:

答案 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"