2017-02-14 4 views
0

Я подОшибка формата Exec. Двоичный файл не исполняемый

Linux version 3.3.4-5.fc17.x86_64 ([email protected]) (gcc version 4.7.0 20120504 (Red Hat 4.7.0-4) (GCC)) #1 SMP Mon May 7 17:29:34 UTC 2012 

пытается запустить основной исполняемый файл script.ksh с разрешением 775 и содержащий:

#!/bin/ksh 
echo "hello ya" 

, но у меня есть:

$./script.ksh 
./script.ksh: Exec format error. Binary file not executable. 

проблема, похоже, исходит от shebang, но я не могу понять, почему и как. я могу запустить скрипт, делая это (обратите внимание на странный выход для первой линии):

$ ksh script.ksh 
script.ksh[1]: ?o?;??#!/bin/ksh: not found [No such file or directory] 
hello ya 

некоторые (возможно) полезный выход:

$ file script.ksh 
script.ksh: Korn shell script, UTF-8 Unicode (with BOM) text executable 
$ which ksh 
/bin/ksh 

у вас есть идея?

ответ

1

ОК проблема приходит из опции

set bomb 

в .vimrc конфигурационного файла Vim. Комментировать эту строку решить проблему.

1

Первая строка начинается с некоторыми невидимыми символами, как показана в сообщении об ошибке:

?o?;??#!/bin/ksh: не найдены

Вы можете подтвердить это с

od -t x1c -N 10 script.ksh 

Удалить тех, персонажей, и теперь он начнется с магии #!. Один из способов, вы могли бы быть в состоянии сделать это

sed -i -e '1s/^[^#]*//' script.ksh 

Test это первое без опции -i (можно по конвейеру в od, чтобы проверить результат).

+0

Действительно, вот что делает опция «bomb» в vim: добавление метки спецификации в файл. – youyou

+0

Я так и думал, но объяснил, что объяснение может быть более ценным, чем исправление, если есть другие редакторы, которые разбиты одинаково. –

 Смежные вопросы

  • Нет связанных вопросов^_^