Ошибка "Нет такого файла или каталога" при попытке запустить скрипт Linux, написанный из системы Windows

Я написал несколько файлов сценариев на своем компьютере с Windows7, а затем загружаю эти файлы на удаленный компьютер Linux. Система на удаленном компьютере:

Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux

от uname -a, С ls Я вижу, что файлы успешно загружены в ожидаемый каталог:

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ ls
Apr_P_150_res5.0.job  Apr_P_200_res5.0.job Apr_P_100_res5.0.job

эти файлы являются сценарием оболочки C:

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ file Apr_P_200_res5.0.job
Apr_P_200_res5.0.job: C shell script, ASCII text executable, with CRLF line terminators

Однако, когда я запускаю один из них с nohup, он выдает ошибку "Нет такого файла или каталога":

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ nohup ./Apr_P_200_res5.0.job &
[3] 17065
xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ nohup: ignoring input and appending output to 'nohup.out'
nohup: failed to run command './Apr_P_200_res5.0.job': No such file or directory

[3]+  Exit 127                nohup ./Apr_P_200_res5.0.job

Файл существует, конечно, что может быть доказано ls, Более странно, когда я писал сценарии непосредственно в системах Linux viтогда он будет работать без проблем. Когда я создал файл сценария в Linux, загрузил его на свой ПК с Windows7, изменил содержимое, но оставил имя файла без изменений, а затем загрузил в Linux; файл сценария будет работать без проблем. Однако, если я создал файл сценария в Linux, загрузите его на свой компьютер с Windows7, измените содержимое и имя файла, а затем загрузите в Linux; файл сценария откажется запускаться и выдаст ошибку "Нет такого файла или каталога".

Так что не так?

1 ответ

Решение

Приведенная ниже строка в вашем выводе указывает на то, что в вашем файле есть окончания строки "CR - возврат каретки".

с ограничителями строки CRLF

Попробуйте запустить cat -v your_file, если он показывает ^M в конце каждой строки, вам нужно запустить dos2unix на них, например dos2unix your_file преобразовать их в формат Unix

Другие вопросы по тегам