実行可能ファイルが存在するだけでなく、有効であるかをテストする(比較的)簡単な方法はありますか?
うまくいくことは、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