Binary
嘗試執行二進製文件時出現“反引號替換中的 EOF”
嘗試使用命令執行二進製文件時出現以下錯誤:
tmp/123.bin
tmp/123.bin: 1: tmp/123.bin: Syntax error: EOF in backquote substitution
我不知道是什麼可能導致錯誤,因為這是與腳本相關的錯誤消息,我正在嘗試執行二進製文件。
該文件是使用以下(nodejs)程式碼創建的。
await runCommand(`nasm -f elf32 ./tmp/${id}.asm -o ./tmp/${id}.o`); await runCommand(`ld -m elf_i386 ./tmp/${id}.o -o ./tmp/${id}.bin`); await runCommand(`chmod +x tmp/${id}.bin`);
我在我的開發機器(wsl,Ubuntu 20.04 LTS)上執行文件沒有問題但是當嘗試在 Google Cloud Run 上做同樣的事情時,命令失敗。
任何幫助是極大的讚賞!:)
編輯:這是我設法找出的一些資訊。
ls -l ./tmp/123.bin
→-rwxrwxr-x 1 root root 956 Oct 30 18:24 ./tmp/123.bin
file ./tmp/123.bin
→./tmp/123.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
uname -a
→Linux localhost 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64 GNU/Linux
原來您只能在 Cloud Run 上執行 64 位執行檔
但是你可以使用qemu!
添加到 Dockerfile 後,您可以使用命令🎉
apt install -y qemu-user
執行 32 位二進製文件qemu-i386 ./file