Проблема скрипта оболочки: \r интерпретируется как символ

Проблема скрипта оболочки: \r интерпретируется как символ

Я пытаюсь создать собственное облако на новом сервере NAS, но используемый скрипт не работает.

Сценарий:

#!/bin/bash

chown -R http:http /volume1/web/owncloud/
chown -R http:http /volume1/web/owncloud/apps/
chown -R http:http /volume1/web/owncloud/config/
chown -R http:http /volume1/web/owncloud/themes/
chown -R http:http /volume1/owncloud/

chown http:http /volume1/web/owncloud/.htaccess

find /volume1/web/owncloud/ -type f -print0 | xargs -0 chmod 777

find /volume1/web/owncloud/ -type d -print0 | xargs -0 chmod 777
find /volume1/owncloud/ -type d -print0 | xargs -0 chmod 777

chmod 777 /volume1/web/owncloud/.htaccess

Вот ответ:

Yamakhalah@Jarvis:/$ sudo -su root
Password:
sh-4.3# cd /
sh-4.3# sh /volume1/web/scripts/perm_upd.sh
/volume1/web/scripts/perm_upd.sh: line 2: $'\r': command not found
chown: cannot access ‘/volume1/web/owncloud/\r’: No such file or directory
chown: cannot access ‘/volume1/web/owncloud/apps/\r’: No such file or directory
chown: cannot access ‘/volume1/web/owncloud/config/\r’: No such file or directory
chown: cannot access ‘/volume1/web/owncloud/themes/\r’: No such file or directory
chown: cannot access ‘/volume1/owncloud/\r’: No such file or directory
/volume1/web/scripts/perm_upd.sh: line 8: $'\r': command not found
chown: cannot access ‘/volume1/web/owncloud/.htaccess\r’: No such file or directory
/volume1/web/scripts/perm_upd.sh: line 10: $'\r': command not found
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
/volume1/web/scripts/perm_upd.sh: line 12: $'\r': command not found
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘777\r’
Try 'chmod --help' for more information.
/volume1/web/scripts/perm_upd.sh: line 15: $'\r': command not found
sh-4.3#

Кто-нибудь может мне объяснить, почему это \rпоявляется везде?

решение1

Вероятно, вы используете файл в стиле Windows и копируете его на NAS. Вам нужно преобразовать его в стиль Unix.Ссылка на Википедию для более подробного объяснения. Некоторые редакторы имеют возможность сохранять файл в других форматах. Если ваш редактор не может этого сделать, вы, вероятно, можете использовать утилиту, dos2unixдоступную для большинства дистрибутивов Linux.

Если все вышеперечисленные варианты не помогают,этот Stackoverflowвероятно, сможет вам помочь.

Связанный контент