我需要执行前一个命令的结果,但我不知道如何处理。执行前一个命令行的输出
我有第一个命令返回一个指令登录到服务器,然后我想执行它之后。
我先命令返回:搬运工登录...
例如:
> my-first-comnand | execute the result of my-first-command
我需要执行前一个命令的结果,但我不知道如何处理。执行前一个命令行的输出
我有第一个命令返回一个指令登录到服务器,然后我想执行它之后。
我先命令返回:搬运工登录...
例如:
> my-first-comnand | execute the result of my-first-command
这应该这样做我相信。
my-first-command | bash
我用$(!!)
这一点。正如Charles指出的那样,这可能不是每个人都想做的事,但它对我来说很合适,并且比其他答案更适合我的目的。
$ find ./ -type f -name "some.sh"
$ $(!!)
!!
是保持最后的命令,并投入$()
使其得到执行的变量。
这对于在输出上采取其他操作也很有用,因为$()
被视为变量。
这是重新运行**先前的命令。如果速度慢/价格昂贵,可能需要很长时间,并且第二次输出可能不完全相同。 –
它在解析命令方面也有所不同。如果输出是'printf'%s \ n'“foo bar”',那么将其输入到shell或使用'eval'运行的结果与将其无引号扩展的结果不同 - 前两个选项会打印一行'foo bar',后者打印一行字符串'“”foo'和第二行字符串'“”bar“'。参见[BashFAQ#50](http://mywiki.wooledge.org/BashFAQ/050)。 –
非常好的一点!我个人更喜欢重新运行命令,因为我一般都想在运行之前检查输出。根据扩展的不同,我希望我们可以想象一个不同的解决方案一个这样的用例, –
Thanks Hexagenic,它的工作原理我们可以做到这一点**我的第一个命令| sh **也 – Victor
@ user7544861,那些是不一样的''sh'比'bash'具有更多的限制性语言。 ttps://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html,即使'/ bin/sh'是硬链接到'bash',这个地方也会有所不同 - 如果你的'/ bin/sh'由不同的shell如'ash'或'dash'提供,将会有更多的变化。 –