Сценарий Bash не работает без shebang, НО shebang приводит к сообщению об ошибке

Я пытаюсь запустить сценарий bash в CentOS 6. Он не работает без заголовка shebang. Однако, когда я включаю shebang, отображается сообщение об ошибке!

Вот сценарий под названием test.sh. Он у меня в каталоге $ HOME / bin. Я запустил chmod 777 на нем, чтобы устранить любые проблемы с разрешениями. Я проверил, что он использует окончания строк Unix ...

test_var=test
echo $test_var

Я выполняю так:

sh ~/bin/test.sh

Я получаю от этого следующий результат:

/home/myusername/bin/test.sh: line 1: test_var=test: command not found

Теперь я добавляю shebang, поэтому сценарий выглядит следующим образом:

#!/bin/bash
test_var=test
echo $test_var

Когда я запускаю это, я получаю:

/home/myusername/bin/test.sh: line 1: #!/bin/bash: No such file or directory
test

Таким образом, у него не было проблем с назначением переменной после добавления shebang, но в то же время он не любит shebang!

Я проверил, и /bin/bash действительно существует. Я попробовал коллекцию других шебанг и получил те же результаты. Я даже пробовал что-то явно недопустимое, то есть #!/fake/path, и результат тот же!

Сценарий не будет работать без добавления shebang (неважно, что это такое), и все же он жалуется на shebang (независимо от того, что это такое)!


person BuvinJ    schedule 26.01.2016    source источник
comment
Что происходит, когда вы запускаете bash /home/myusername/bin/test.sh?   -  person quickshiftin    schedule 26.01.2016
comment
Просто попробовал. То же самое.   -  person BuvinJ    schedule 26.01.2016
comment
Также пробовал / bin / bash /home/myusername/bin/test.sh   -  person BuvinJ    schedule 26.01.2016
comment
Звучит как что-то странное с персонажами в файле. Попробуйте удалить первую строку вашего файла и запустить снова, явно используя bash из вызова командной строки.   -  person quickshiftin    schedule 26.01.2016
comment
Хорошее предложение, но я отредактировал его с помощью Notepad ++, показывая все символы. Нет фанковых символов.   -  person BuvinJ    schedule 26.01.2016
comment
Изучая ответ Гислена Рувиньяка ...   -  person BuvinJ    schedule 26.01.2016
comment
Блокнот ++? Попробуйте открыть его с помощью vi в Linux;) А еще вы пробовали запустить его, как я предлагал?   -  person quickshiftin    schedule 26.01.2016
comment
Спасибо quickshiftin. Гислен Рувиньяк был прав насчет кодировки.   -  person BuvinJ    schedule 26.01.2016


Ответы (1)