Bash-Datei gibt unerwartetes Token '$' do \ r '' zurück

7

Ich habe dieses Skript online gefunden und versucht es zu benutzen:

%Vor%

Ich habe das Skript online validiert und das Skript ist in Ordnung. Ich habe auch versucht, es auf verschiedene Arten zu ändern, aber es funktioniert nicht für mich.

Ich habe auch versucht, etwas wie:

zu laufen %Vor%

Und ich bekomme immer noch den gleichen Fehler:

%Vor%

Warum ist das so?

    
kfirba 27.11.2014, 18:14
quelle

4 Antworten

17

Ihr Skript wurde auf einem DOS- oder Windows-basierten System bearbeitet und enthält Carriage-Return-Zeichen, die Linux / Unix nicht mögen (das was \r ist). Sie könnten dos2unix verwenden, um die Wagenrücklaufzeilenendungen in das richtige Format zu konvertieren. Wenn du dos2unix nicht hast, kannst du awk like

verwenden %Vor%     
Elliott Frisch 27.11.2014, 18:19
quelle
14

Eine weitere mögliche Lösung mit dem Unix-Texteditor vi:

Datei in vi öffnen mit vi filename.sh command;

bearbeiten

Geben Sie vi :set ff=unix command;

ein

speichert die Datei mit :wq

Es wird die Datei mit Unix-Zeilenenden gespeichert.

    
Bfcm 17.11.2015 09:50
quelle
2

Dies ist ein ziemlich üblicher Alptraum:)

Ich habe ein Skript erstellt, um \r\n von Dos und von (altem) Mac zu normalisieren; Es entfernt auch Stückliste falls vorhanden:

%Vor%

Verwendung: script textualfile*

Ok, ok: Wähle einen besseren Namen dafür! chmod und installiere es

    
JJoao 27.11.2014 19:08
quelle
1

Das hat für mich funktioniert:

%Vor%

Wenn Sie dos2unix nicht haben:

Um dos2unix auf CentOS, Fedora oder RHEL zu installieren:

%Vor%

Um dos2unix unter Ubuntu oder Debian zu installieren:

%Vor%

HTH

    
JRichardsz 24.03.2017 16:34
quelle

Tags und Links