2017-01-23 13 views
0

ich eine bash script schreibe, die eine folgtRaum zwischen den Linien in Shell als Befehl genommen wird

#!/bin/bash 

#getting the environment variable from commandline 
environment=$1 

echo $environment 

Nun, wenn ich das Skript mit bash ./bashScript.sh Hello laufen lasse, erhalte ich die folgenden Fehler auf der Leitung

: Befehl nicht gefunden Zeile 2

: Befehl nicht gefunden Zeile 5

Ich sehe, dass diese beiden Linien sind Raum und Bash-Skript ist mir so einen Fehler geben

es zu lösen ich mein Skript als

#!/bin/bash 
# 
#getting the environment variable from commandline 
environment=$1 
# 
echo $environment 

schreiben, aber es sieht irgendwie unordentlich

Gibt es einen anderen Weg, dies zu erreichen? Vielen Dank für die Hilfe im Voraus.

+0

Haben Sie kopieren es von irgendwo? Klingt so, als hättest du ein paar streunende Zeilenenden oder etwas in der Art. – arco444

+0

@ arco444 Nein, ich habe es selbst geschrieben. Der Abstand zwischen den Zeilen ist durch "Enter" auf der Tastatur –

+0

Ich stimme mit @ arco444, ich versuche Ihre erste Code-Fragment und es funktioniert gut für mich. – acornagl

Antwort

1

Ihr Kommentar fügen Sie die Genauigkeit hinzu, die Ihre Zeilen DOS Ende der Zeilen (\r\n) verwenden, wenn Sie es mit od -xc file ausgeben. Um dies zu vermeiden, sollten Sie sicherstellen, dass Ihr Editor Unix-Zeilenende verwendet (\n).

Um es auf einer vorhandenen Textdatei zu beheben, können Sie tr verwenden:

tr -d '\r' <dos_file> unix_file 
+0

Danke für Hilfe :) Wirklich zu schätzen wissen –