Скрипт Bash не понят Ubuntu Bash - PullRequest
       0

Скрипт Bash не понят Ubuntu Bash

11 голосов
/ 27 декабря 2011

Я новичок в Bash Script. Я запускаю следующий простой скрипт в Ubuntu следующим образом:

sudo bash -x Script.sh

Выход:

+ $'\r'
: command not found
+ $'\r'
: command not found
+ $'\r'
: command not found
+ adminEmail=$'info@domain.com\r'
+ $'\r'
: command not found
' echo 'database name:
database name:
+ read $'dbname\r'

Фактический скрипт:

#!/bin/bash

# Installation script for latest Wordpress website on Ubuntu
# 
# Kave
# December 27, 2011


adminEmail="info@domain.com"

echo "database name:"
read dbname

Что это за сообщения об ошибках '\r'? Даже комментарии кажутся непонятными ...

Ответы [ 4 ]

12 голосов
/ 27 декабря 2011

Просто выполните

dos2unix scriptname

и выполните ваш скрипт.

Если у вас нет инструмента, вы можете сделать следующее, чтобы установить его.

sudo apt-get install dos2unix

ИЛИ

Выполните следующие действия командной строки для преобразования файла.

tr -d '\015' < scriptname > scriptname.new

ИЛИ

sed -i 's/\x0D$//' scriptname
10 голосов
/ 27 декабря 2011

Вы загрузили файл через компьютер с Windows, и у вас есть окончания строки CRLF (это \r\n на C и родственных языках).

Удалите окончания строки DOS. Например, отредактируйте файл в vim и измените формат на :set fileformat=unix (плюс Return ), а затем запишите файл обратно. Альтернативные методы могут использовать команду tr или dos2unix или dtou, в зависимости от того, что доступно.

1 голос
/ 27 декабря 2011

Звучит так, как будто в файле есть какие-то посторонние непечатные символы.
Откройте файл в Vi / Vim:
нажмите [ESC], чтобы войти в командный режим
, затем введите :set list

1 голос
/ 27 декабря 2011

Вырежьте и вставьте свой код с этой страницы в редактор на вашей Ubuntu, чтобы вы исправили окончания строк (\r\n в Windows против \n в Linux, например)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...