Сценарий оболочки: использование переменных добавляет возврат каретки [дубликат]

Последние выпуски AngularFire требуют rxjs 6. Обновите rxjs и включите rxjs-compat, если у вас есть зависимости, которые не были обновлены.

264
задан Benjamin W. 21 March 2016 в 05:37
поделиться

11 ответов

Я видел эту проблему при создании сценариев в Windows env и затем переносе для работы в среде Unix.

Попробуйте запустить это в скрипте:

http : //linuxcommand.org/man_pages/dos2unix1.html

Обновлена ​​ссылка:

http://dos2unix.sourceforge.net/

Или просто перезапишите скрипт в вашем Unix env, используя vi и test.

Unix использует разные строки и возвращает каретки, поэтому не может прочитать файл, созданный в Windows. Следовательно, он видит ^ M как незаконный символ.

Если вы хотите записать файл в Windows и затем переместить его, убедитесь, что ваш редактор настроен на создание файлов в формате UNIX.

В блокноте ++ в правом нижнем углу экрана отображается формат документа. По умолчанию он скажет Dos\Windows. Чтобы изменить его, перейдите к

  • settings-> preferences
  • вкладке каталога нового документа / по умолчанию
  • выберите формат как unix и close
  • создать новый документ
354
ответ дан Ares 24 August 2018 в 04:35
поделиться

Для пользователей Eclipse вы можете либо изменить кодировку файла непосредственно из меню File > Convert Line Delimiters To > Unix (LF, \n, 0Α, ¶):

Или измените New text file line delimiter на Other: Unix на панели Window > Preferences > General > Workspace:

3
ответ дан Christos Lytras 24 August 2018 в 04:35
поделиться

Если вы используете Sublime Text на Windows или Mac для редактирования ваших скриптов:

Нажмите View > Line Endings > Unix и снова сохраните файл.

enter image description here [/g0]

99
ответ дан fivestones 24 August 2018 в 04:35
поделиться

Я смог решить проблему, открыв скрипт в Gedit и сохранил его с помощью правильной опции Line Ending:

File> Save As ...

В левом нижнем углу приглашения Save As имеются раскрывающиеся меню для кодировки символов и окончания строки. Измените завершение линии с Windows на Unix/Linux, затем сохраните.

gedit "Save As" prompt] [/g0]

3
ответ дан hg8 24 August 2018 в 04:35
поделиться

У вашего файла есть завершающие строки Windows, которые запутывают Linux.

Удалите ложные символы CR. Вы можете сделать это с помощью следующей команды:

 $ sed -i -e 's/\r$//' setup.sh
6
ответ дан kalyani chaudhari 24 August 2018 в 04:35
поделиться
Проблема с g0 связана с завершением строки dos. Следующее преобразует его для unix

dos2unix file_name

NB: вам может потребоваться сначала установить dos2unix с помощью yum install dos2unix

, используя команду sed для поиска и замените символы окончания строки dos на unix-формат:

$sed -i -e 's/\r$//' your_script.sh
8
ответ дан Md. Shafiqur Rahman 24 August 2018 в 04:35
поделиться

Я разрабатываю в Windows и Mac / Linux одновременно, и я избегаю этой ^ M-ошибки, просто запуская свои сценарии, как в Windows:

$ php ./my_script

Не нужно менять окончания строк.

-1
ответ дан MrMacvos 24 August 2018 в 04:35
поделиться

Выполнить следующую команду в терминале

sed -i -e 's/\r$//' scriptname.sh

Затем попробуйте

./scriptname.sh

Он должен работать.

290
ответ дан Nivin V Joseph 24 August 2018 в 04:35
поделиться

Это вызвано редактированием файла в окнах и импортом и исполнением в unix.

dos2unix -k -o filename должен выполнить трюк.

41
ответ дан StonecoldIM 24 August 2018 в 04:35
поделиться

Atom имеет встроенный селектор селектора окончания

Подробнее здесь: https://github.com/atom/line-ending-selector

1
ответ дан tuanh118 24 August 2018 в 04:35
поделиться

В блокноте ++ вы можете установить его для файла специально, нажав

Edit -> EOL Conversion -> UNIX / OSX Format

enter image description here [/g0]

26
ответ дан Urik 24 August 2018 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: