Bash:生のバイナリを変数の実行可能ファイルとして使用しますか?

Bash:生のバイナリを変数の実行可能ファイルとして使用しますか?

バイナリデータを含む変数を作成してから、コマンドで実行したいと思います。例:

#!/bin/bash
var="$(cat /bin/sleep)"
"$var" 9999

ベストアンサー1

次の理由でこのような変数を実行することはできません。

  • カーネル実行可能ファイル、
  • シェルは変数に格納されているコマンドラインを実行できますが、バイナリデータを解釈することはできません。
  • バイナリファイルの内容を変数に保存すると、ファイルにヌルバイトがある可能性があるため、うまく機能しない可能性があります(ほとんどのシェルは変数にヌルバイトを持つことはできません)。
  • 変数の内容を含む一時ファイルを取得するためにプロセス置換を使用しても、プロセス置換ファイルハンドルを実行することはできません。

そのため、コンテンツをファイルに保存し、ファイルを実行可能にし、ヌルバイトによって失われることがないことを望む次のファイルを実行する必要があります。

おすすめ記事