直接从curl执行二进制文件

时间:2013-02-16 11:36:11

标签: bash curl binary executable

是否有执行二进制“流”的bash命令?有一种很好的方法可以直接从Internet加载和运行shell脚本。

例如:

curl http://j.mp/spf13-vim3 -L -o - | sh

是否可以在不保存文件,chmod等的情况下运行二进制文件?

类似的东西:

curl http://example.com/compiled_file | exec_binary

1 个答案:

答案 0 :(得分:10)

我知道的Unix内核希望将二进制可执行文件存储在磁盘上。这是必需的,因此它们可以对任意偏移执行搜索操作,并且还将文件内容映射到存储器中。因此,无法直接从标准输入执行二进制流。

您可以做的最好的事情是编写一个脚本,通过将数据保存到临时文件中来间接完成您想要的操作。

#!/bin/sh

# Arrange for the temporary file to be deleted when the script terminates
trap 'rm -f "/tmp/exec.$$"' 0
trap 'exit $?' 1 2 3 15

# Create temporary file from the standard input
cat >/tmp/exec.$$

# Make the temporary file executable
chmod +x /tmp/exec.$$

# Execute the temporary file
/tmp/exec.$$