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

String 函数中bash命令的管道字符串,string,bash,function,vim,pipe,String,Bash,Function,Vim,Pipe,我有一个字符串(作为另一个函数的结果,但为了简单起见,现在让我们将其存储在s中),我想通过管道将其写入bash命令。(必须是管道,命令不接受此类输入作为参数。) 所以问题是,我应该如何调用mycommand,也就是说,… 函数!MyFunc() 让我们看看“我的字符串” 处决mycommand——旗帜 端功能 通过此处字符串: :让s=“我的字符串” :set shell=/bin/bash :exe“!cat通过此处字符串: :让s=“我的字符串” :set shell=/bin/bash :

我有一个字符串(作为另一个函数的结果,但为了简单起见,现在让我们将其存储在
s
中),我想通过管道将其写入
bash
命令。(必须是管道,命令不接受此类输入作为参数。)

所以问题是,我应该如何调用
mycommand
,也就是说,

函数!MyFunc()
让我们看看“我的字符串”
处决mycommand——旗帜
端功能
通过此处字符串:

:让s=“我的字符串”
:set shell=/bin/bash
:exe“!cat通过此处字符串:

:让s=“我的字符串”
:set shell=/bin/bash
:exe“!猫你能试试这个吗

:execute "!\"".s."\" | mycommand"
你能试试这个吗

:execute "!\"".s."\" | mycommand"

我想那正是我想要的!为什么您更喜欢
@PeterVaro,嗯,这里的字符串比较短,不需要
echo
printf
。我不确定,但我认为在这里字符串不会像管道那样分叉子进程。但是管道是可移植的。有趣的是:如果我将
:call MyFunc()
映射到一个键,其中
MyFunc
可以有here字符串或管道,则两者都需要我按Enter键的次数与字符串中新行的次数相同。。有什么想法吗?一个原因是PeterVaro,
沉默!命令
禁用来自该命令的可能消息<代码>安静!exe“!command”
似乎具有相同的效果<代码>
是可选的;它禁止等待从定义的
p
px
pxy
,等等)开始的可能映射。我想这正是我想要的!为什么您更喜欢
@PeterVaro,嗯,这里的字符串比较短,不需要
echo
printf
。我不确定,但我认为在这里字符串不会像管道那样分叉子进程。但是管道是可移植的。有趣的是:如果我将
:call MyFunc()
映射到一个键,其中
MyFunc
可以有here字符串或管道,则两者都需要我按Enter键的次数与字符串中新行的次数相同。。有什么想法吗?一个原因是PeterVaro,
沉默!命令
禁用来自该命令的可能消息<代码>安静!exe“!command”
似乎具有相同的效果<代码>
是可选的;它禁止从定义的
p
px
pxy
,等等)开始等待可能的映射。我感谢您的努力,但我认为@RuslanOsmanov在
s
上使用
shellescape
内置函数是正确的——它可以确保concatated字符串的执行安全@彼得瓦罗:谢谢你的洞察力。我来这里主要是为了学习。我也想尝试一下。我很感谢您的努力,但我认为@RuslanOsmanov在
s
上使用
shellescape
内置函数是正确的——它可以使concatated字符串的执行安全@彼得瓦罗:谢谢你的洞察力。我来这里主要是为了学习。我也想尝试一下。