2011-12-27 18 views
11

Sono nuovo di Bash Script. Ho eseguito il seguente semplice script in Ubuntu come questo:Script di Bash non compreso da Ubuntu Bash

sudo bash -x Script.sh 

uscita:

+ $'\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' 

Lo script attuale:

#!/bin/bash 

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


adminEmail="[email protected]" 

echo "database name:" 
read dbname 

Cosa sono tutti questi '\r' messaggi di errore in arrivo? Anche i commenti sembrano non essere compresi ...

+0

Sembra che hai un problema con la fine riga, ma non so come risolvere questo problema ... – evotopid

+0

Funziona per me ... Arch Linux i686 – Paul

+1

Dalla riga di comando eseguire 'dos2unix scriptname nomecampo'. '\ r' sono i ritorni a capo, hai creato il file su una macchina Windows e l'hai inviato a Linux? –

risposta

10

Hai scaricato il file tramite un computer Windows e hai terminazioni di riga CRLF (ovvero \r\n in C e lingue correlate).

Rimuovere le terminazioni di linea DOS. Ad esempio, modificare il file in vim e modificare il formato con :set fileformat=unix (più Restituire) e quindi riscrivere il file. Le tecniche alternative potrebbero utilizzare il comando tr o dos2unix o dtou, a seconda di ciò che è disponibile.

1

Tagliare e incollare il codice da questa pagina in un editor sul vostro Ubuntu, in modo otterrete la vostra linea terminazioni fisse (\r\n sulle finestre vs \n su Linux per esempio)

Se si salva come nuovo file sono sicuro che funzionerà bene.

1

Sembra che nel file siano presenti caratteri estranei non stampabili.
Aprire il file in Vi/Vim:
stampa [ESC] per entrare in modalità di comando
quindi digitare :set list

+0

E una volta che hai elencato i personaggi, come faresti a rimuoverli? Benvenuto in StackOverflow. La tua risposta è molto sulla giusta linea, ma non è ancora completa. –

11

semplicemente

dos2unix scriptname 

ed eseguire lo script.

Se non si dispone dello strumento, è possibile eseguire le seguenti operazioni per installarlo.

sudo apt-get install dos2unix 

O

fare la seguente riga di comando hack per convertire il file.

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

O

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

Molte grazie .... – Houman