ubuntuusers.de

shellprogrammieren eines newbies

Status: Gelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

lesenv

Anmeldungsdatum:
11. Mai 2015

Beiträge: 6

Hallo,

ich habe gerade vor einem Monat Ubuntu installiert, aber meine Pythonscripts, die ich von Windows mitgebracht hab, laufen nicht im Terminal... Zum Beispiel

1
2
3
#!/usr/bin/python3.4

print("YES")

Wenn ich das im Terminal ausführe, erhalte ich Folgendes. Was soll dieses ^M und wie bekomme ich es weg???

bash: ./erstes.py: /usr/bin/python3.4^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

Eventuell hat es ja mit einem anderen Problem zu haben:

Wenn mein WLan-Adapter nicht richtig funktioniert, muss ich immer die genau gleichen Schritten durchführen, weshalb ich mir ein Shellscript schreiben wollte:

1
2
3
4
5
cd ~/blubb/bla/mirmeins
make
sudo make install
sudo modprobe -r rtl8192cu
sudo modprobe 8192cu

Allerdings klappt das so nicht, obwohl es funktioniert, wenn ich die Zeilen einzeln im Terminal ausführe.

Vielen Dank an alle, die das bis hier gelesen haben! Es wäre großartig, wenn ihr mir helfen könntet.

lesenv

Keba Team-Icon

Ehemalige
Avatar von Keba

Anmeldungsdatum:
24. Juli 2007

Beiträge: 3802

Hallo und Willkommen im Forum,

Ich nutze zwar kein 14.04, aber das englischsprachige Wiki behauptet, der Python-3-Interpreter liege unter /usr/bin/python3. Du müsstest deine erste Zeile daher anpassen. Generell sollte man aber #!/usr/bin/env python3 verwenden, das funktioniert tendenziell auf mehr Distributionen. Zu mehr Informationen dazu siehe Shebang.

Zwei Anmerkungen noch:

  1. „shellprogrammieren eines newbies“ ist kein aussagekräftiger Titel.

  2. Dein Work-Around zu „Wenn mein WLan-Adapter nicht richtig funktioniert“ sieht merkwürdig aus. Da lohnt es sich vielleicht (in einem neuen Thread!) nachzufragen, ob man das nicht anders hinbekommen kann. Wäre ja vielleicht schöner, wenn der Adapter immer „richtig funktioniert“. (Und ansonsten sollte doch nicht jedes Mal etwas kompiliert und installiert werden?!)

Grüße, Keba

//Edit: Ah, Google hat mir gerade verraten, dass /usr/bin/python3 auf /usr/bin/python3.4 linkt … Vielleicht möchtest du dann lieber lubux' Vorschlag testen, als meinen.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14347

lesenv schrieb:

... meine Pythonscripts, die ich von Windows mitgebracht hab, laufen nicht im Terminal... ... Was soll dieses ^M und wie bekomme ich es weg???

Evtl. liegt es am Editor, den Du unter Windows benutzt hast. Versuch mal mit einem Linux-/unix-Editor.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi lesenv,

erstmal willkommen hier auf dem Forum !

Was Du da gerade erlebst ist das Problem mit den Win..- Zeilenden.
Es ist immer ein "\r" (das ^M) am Ende übrig, das dann als Bestandteil des letzten Worts in der Zeile gesehen wird.

Das muss natürlich weg. Entweder Du speicherst es im Editor (z.B. gedit) nochmal mit den richtigen Zeilenenden, oder Du benutzt dafür ein kleines Tool.

LG,

track

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

lesenv schrieb:

Hallo,

ich habe gerade vor einem Monat Ubuntu installiert, aber meine Pythonscripts, die ich von Windows mitgebracht hab, laufen nicht im Terminal... Zum Beispiel

1
2
3
#!/usr/bin/python3.4

print("YES")

Wenn ich das im Terminal ausführe, erhalte ich Folgendes. Was soll dieses ^M und wie bekomme ich es weg???

Das ist vom Windows-encoding. Da benutzt man CR/LF für den Zeilenumbruch weil man zwanghaft anders machen wollte als auf Unixsystemen, während Linux nur LF benutzt.

Entweder der Editor erlaubt das Speichern mit Unix-Zeilenenden, oder Du konvertierst mit einem Skript die Skripte - eine Zeitlang hieß das Tool dafür dos2unix, dann gabe es mal ein recode - was zur Zeit bei Linux mitkommt weiß ich nicht.

lesenv

(Themenstarter)

Anmeldungsdatum:
11. Mai 2015

Beiträge: 6

hm, du hast recht, Keba. Ich werde zwei neue Threads starten mit neuen aussagekräftigen Titeln.

Danke schonmal für Eure Antworten!

\r oder ^M hab ich nicht mehr! ☺ dafür andere Probleme... ☹ aber dazu mehr im nächsten Thread.

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

Wohnort: Unter dem Tisch

Salü,

Ich möchte nur kurz darauf hinweisen das der Titel leicht irreführend ist. Siehe dazu http://de.wikipedia.org/wiki/Unix-Shell

Könnte man vielleicht in: Pythonprogrammiern für Newbies ändern 😉

Cheers!

- Kriev

Antworten |