9

バイナリ「ストリーム」を実行するためのbashコマンドはありますか?インターネットから直接シェルスクリプトをロードして実行するための優れた方法があります。

例として:

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

ファイルやchmodなどを保存せずにバイナリを実行することは可能ですか?

何かのようなもの:

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

1 に答える 1

12

私が知っている 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.$$
于 2013-02-16T11:46:58.920 に答える