有効な実行ファイルかどうかテスト

有効な実行ファイルかどうかテスト

実行可能ファイルが存在するだけでなく、有効であるかをテストする(比較的)簡単な方法はありますか?

うまくいくことは、x86_64 Mach-O(OS X)実行可能ファイルがARM Raspberry Piで実行されないことを意味します。ただし、実行可能ファイルは実行されますが、失敗するx86_64tool-osx || tool-rpiに置き換えられないOS Xで実行すると機能します。tool-rpi

プロセッサアーキテクチャに無効な実行ファイルがある場合は、他の実行ファイルに置き換える方法は?

ベストアンサー1

有効な実行ファイルをテストするのではなく、現在のアーキテクチャをテストしてから、そのアーキテクチャに基づいて正しい実行ファイルを選択してください。たとえば、

if [ $(uname -m) == 'armv6l' ]; then
    tool-rpi
else
    tool-osx
fi

しかし、実行ファイルをテストしたい場合本物必要に応じて、GNUはfile実行可能ファイルのアーキテクチャを知らせることができます。

user@host:~$ file $(whereis cat)
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x4e89fd8f129f0a508afa325b0f0f703fde610971, stripped

おすすめ記事