执行上一个命令行的输出

时间:2017-03-31 13:04:42

标签: linux shell

我需要执行上一个命令的结果,但我不知道如何处理。

我有一个第一个命令,它返回一条登录服务器的指令,然后我想在之后执行它。

my-first-command返回:docker login ...

例如:

> my-first-comnand | execute the result of my-first-command

3 个答案:

答案 0 :(得分:1)

我使用$(!!)。正如查尔斯指出的那样,这可能不是每个人都想做的事情,但它对我有用,比其他答案更适合我的目的。

$ find ./ -type f -name "some.sh" 
$ $(!!)

!!是一个包含最后一个命令的变量,放入$( )会使其执行。

这对于在输出上执行其他操作也很有用,因为$( )被视为变量。

答案 1 :(得分:1)

我应该这样做。

  

my-first-command | bash的

答案 2 :(得分:0)

最方便的方法是使用反引号`your_command`内联执行子命令并立即在主命令中使用输出。

示例:

`find ~/Library/Android/sdk/build-tools/* -d 0 | tail -1`/zipalign -f 4 ./app-release-unsigned.apk ./app-release.apk

在此示例中,我首先find从正确的目录开始执行zipalign。就我而言,可能有多个目录(find返回两个目录),所以我使用tail获得了最后一个目录。然后我直接使用以前的结果作为路径来执行zipalign,以更正zipalign二进制文件。