2011-12-27 18 views
11

Soy nuevo en Bash Script. Funciono con la siguiente secuencia de comandos sencilla en Ubuntu como esto:Script Bash no entendido por Ubuntu Bash

sudo bash -x Script.sh 

Salida:

+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ adminEmail=$'[email protected]\r' 
+ $'\r' 
: command not found 
' echo 'database name: 
database name: 
+ read $'dbname\r' 

El guión real:

#!/bin/bash 

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


adminEmail="[email protected]" 

echo "database name:" 
read dbname 

¿Qué todos estos mensajes de error '\r' subiendo? Incluso los comentarios parecen no ser entendidos ...

+0

Parece que tiene un problema con los finales de línea, pero no sé cómo solucionar este problema ... – evotopid

+0

Funciona para mí ... Arco Linux i686 – Paul

+1

Desde la línea de comando, haga 'dos2unix scriptname scriptname'. '\ r' son retornos de carro, ¿usted creó el archivo en una máquina de Windows y lo envió a Linux? –

Respuesta

10

Ha descargado el archivo a través de una máquina con Windows, y tiene terminaciones de línea CRLF (\r\n en C e idiomas relacionados).

Elimina las terminaciones de línea de DOS. Por ejemplo, edite el archivo en vim y cambie el formato con :set fileformat=unix (más Devuelva) y luego vuelva a escribir el archivo. Las técnicas alternativas podrían usar el comando tr o dos2unix o dtou, según lo que esté disponible.

1

cortar y pegar el código de esta página en un editor en su Ubuntu, de manera que obtendrá sus terminaciones de líneas fijas (\r\n en las ventanas vs \n en Linux, por ejemplo)

Si lo guarda como una nuevo archivo, estoy seguro de que funcionará bien.

1

Parece que hay algunos caracteres extraños no imprimibles en el archivo.
Abrir el archivo en Vi/Vim:
prensa [ESC] para entrar en modo de comando
continuación, escriba :set list

+0

Y una vez que tengas a los personajes en la lista, ¿cómo harías para eliminarlos? Bienvenido a StackOverflow. Su respuesta está en la línea correcta, pero aún no está completa. –

11

Basta con hacer

dos2unix scriptname 

y ejecutar la secuencia de comandos.

Si no tiene la herramienta, puede hacer lo siguiente para instalarla.

sudo apt-get install dos2unix 

O

Haz la siguiente línea de comandos hacks para convertir el archivo.

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

O

sed -i 's/\x0D$//' scriptname 
+0

Muchas gracias .... – Houman