bash — избегайте необходимости в dos2unix в переполнении стека

Мы использовали для редактирования скрипта полезной нагрузки через терминал на старом сервере.

Чтобы упростить и избежать опечаток, я хотел бы разработать php-скрипт, который генерирует полезную нагрузку, сохранить его в файл и использовать встроенную функцию FTP в PHP для загрузки файла на FTP-сервер и chmod сценария на 755.

Но мой сгенерированный полезный груз не особенно нравится серверу. Это не работает.

#./payload.sh
-sh: ./payload.sh: not found
#

Однако после выполнения простого dos2unix payload.shвсе работает нормально.

#dos2unix payload.sh
#./payload.sh
[OK] running payload....
#

Как я могу автоматически создать свой файл, чтобы избежать необходимости каждый раз в dos2unix? Я попробовал очевидный метод KISS:

$contents = str_replace("\r","",$contents);
$contents = trim($contents);

Неудачно. Скрипт все еще не запускается.

Так что я заглянул в dos2unix.c и dos2unix.h и обнаружил, что, казалось, не все так просто, как я думал. Там было 800 с лишним строк кода.

Есть ли что-нибудь более простое, что я могу сделать в PHP? FWIW, я должен признать, что в настоящее время я использую напечатанные вручную файлы, написанные в Sublime Text 2 на моем Mac. Я попытался «Сохранить с кодировкой» / «UTF-8» и выбрал «Unix» как «Концы строк».

1

Решение

Сейчас я использую FTP_BINARY вместо FTP_ASCII. Работает сейчас — EDP

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]