Planet 3DNow! Forum    
  Fantastic Zero Logo


Zurück   Planet 3DNow! Forum > Software und Treiber > Alternative Betriebssysteme und Software
Hilfe Registrieren Blogs Mainboarddatenbank Galerie Extras Suchen Heutige Beiträge Alle Foren als gelesen markieren

Gehe zu
Antwort
 
Themen-Optionen Ansicht
Alt 02.05.2012, 19:40   Posting #1 (im Thread / einzeln)
Green_Ranger
Fleet Captain
Special
Fleet Captain
 
Benutzerbild von Green_Ranger
 
Registriert seit: 12.01.2004
Beiträge: 299
Shellscript if Anweisung

Hi, ich bekomme in der Konsole immer folgende Meldung...

bei 2 Argumenten:
Code:
-bash-4.1$ sh test.sh 2 3
Anzahl der Argumente: 2
test.sh: line 6: syntax error: unexpected end of file
bei 3 Argumenten:
Code:
-bash-4.1$ sh test.sh 2 3 5
Anzahl der Argumente: 3
test.sh: line 6: syntax error: unexpected end of file
Hier der Inhalt von test.sh
Code:
echo "Anzahl der Argumente: $#"
if [$# != 3]
then
echo "Falsche Anzahl an Parametern"
fi
Das ganze bringt mich noch zur Weißglut, ich habe wirklich keine Ahnung wo in diesen simplen paar Zeilen der Fehler hängt!

Bitte um hilfe.
 
Alt 02.05.2012, 19:44   Posting #2 (im Thread / einzeln)
tomturbo
Technische Administration
Dinosaurier

 
Benutzerbild von tomturbo
 
Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
Das blank fehlt bei den eckigen Klammern:

if [<blank$# != 3<blank>]

lg
__tom
 
Alt 02.05.2012, 19:53   Posting #3 (im Thread / einzeln)
Green_Ranger
Fleet Captain
Special
Fleet Captain
 
Benutzerbild von Green_Ranger
 
Registriert seit: 12.01.2004
Beiträge: 299
Das hat leider nichts gebracht O_o

ich werde noch bekloppt, dass ist genau so wie auf den Vorlesungsfolien.
 
Alt 02.05.2012, 19:58   Posting #4 (im Thread / einzeln)
tomturbo
Technische Administration
Dinosaurier

 
Benutzerbild von tomturbo
 
Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
Also das:
PHP-Code:
echo "Anzahl der Argumente: $#"
if [ $# != 3 ]
then
echo "Falsche Anzahl an Parametern"
fi 
hat bei mir vollkommen hin gehauen.

Ich habe eine bash 4.2
 
Alt 02.05.2012, 20:09   Posting #5 (im Thread / einzeln)
Green_Ranger
Fleet Captain
Special
Fleet Captain
 
Benutzerbild von Green_Ranger
 
Registriert seit: 12.01.2004
Beiträge: 299
Ich glaube ich habe den Fehler gefunden, ich habe die Datei mit Ultraedit auf einem Windows PC erstellt, (MS Office zwingt mich ja praktisch dazu mit den Dingern zu arbeiten)... hab es noch mal mit vim geschrieben und nun geht es...

edit: und natürlich mussten da Leerzeichen hin.
 
Alt 02.05.2012, 20:20   Posting #6 (im Thread / einzeln)
tomturbo
Technische Administration
Dinosaurier

 
Benutzerbild von tomturbo
 
Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
Zitat:
Zitat von Green_Ranger Beitrag anzeigen
MS Office zwingt mich ja praktisch dazu mit den Dingern zu arbeiten
Na Na Na, wer wird denn so schnell aufgeben: playonlinux

lg
__tom
 
Alt 02.05.2012, 20:22   Posting #7 (im Thread / einzeln)
Dalai
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von Dalai
 
Registriert seit: 13.06.2004
Ort: Meiningen, Thüringen
Beiträge: 5.730
Zitat:
Zitat von Green_Ranger Beitrag anzeigen
[...] ich habe die Datei mit Ultraedit auf einem Windows PC erstellt
Also wenn du Skripte schon mit UltraEdit erstellst bzw. den überhaupt benutzt, dann kannst du damit auch gleich den Zeilenumbruch entsprechend um-/einstellen auf Linux. Das sollte das erste sein, was man macht, wenn man ein Linux-Skript anfängt zu schreiben, völlig egal ob Shell, Python, Perl oder was anderes.

Zitat:
(MS Office zwingt mich ja praktisch dazu mit den Dingern zu arbeiten)...
Ähm, was hat MS Office damit zu tun?

Zitat:
hab es noch mal mit vim geschrieben und nun geht es...
Ich hoffe, du hast dir keinen abgebrochen . Ich kann dem "Unsinn" Eingabemodus und Befehlsmodus von vi(m) absolut nichts abgewinnen. Nano hat eine vergleichsweise vernünftige Bedienweise, jedenfalls für solch einfache Dinge. Insofern verstehe ich auch nicht, wenn die im Netz zu findenden Anleitungen vi(m) verwenden und nicht die für Anfänger IMO besser geeigneten Editoren. Aber vielleicht bin ich einfach zu verwöhnt von anderen Editoren wie nano und mcedit .

MfG Dalai
 
Alt 02.05.2012, 20:43   Posting #8 (im Thread / einzeln)
Green_Ranger
Fleet Captain
Special
Fleet Captain
 
Benutzerbild von Green_Ranger
 
Registriert seit: 12.01.2004
Beiträge: 299
Auf Gefahr hin geschlagen zu werden: Ich habe aktuell gar kein Linux auf meinem PC installiert, ich benutze den SSH Client PuTTY um auf die Linux PCs an meiner Uni zuzugreifen... selbst wenn ich in der Uni lerne benutze ich ausschließlich die Windows Maschinen. Pure Gewohnheit, eventuell schaue ich mir mal die aktuelle Ubuntu Version an, wobei ich Unity extrem gewöhnungsbedürftig finde.
 
Alt 02.05.2012, 20:45   Posting #9 (im Thread / einzeln)
tomturbo
Technische Administration
Dinosaurier

 
Benutzerbild von tomturbo
 
Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
Wenn man auf Windows richtig arbeiten will gibts Gott sei Dank cygwin

lg
__tom
 
Alt 02.05.2012, 20:59   Posting #10 (im Thread / einzeln)
Dalai
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von Dalai
 
Registriert seit: 13.06.2004
Ort: Meiningen, Thüringen
Beiträge: 5.730
Zitat:
Zitat von Green_Ranger Beitrag anzeigen
Ich habe aktuell gar kein Linux auf meinem PC installiert, ich benutze den SSH Client PuTTY um auf die Linux PCs an meiner Uni zuzugreifen...
Das ist ja egal, ich mache das genauso. Ich wollte nur sagen, dass UltraEdit durchaus ohne Umwege lauffähige Linux-Skripte erstellen kann und auf jedem ordentlichen Linux auch nano als Editor verfügbar ist .

MfG Dalai
 
Alt 02.05.2012, 21:50   Posting #11 (im Thread / einzeln)
tspoon
Admiral
Special
Admiral
 
Benutzerbild von tspoon
 
Registriert seit: 23.04.2006
Ort: Dresden
Beiträge: 1.657
Ich find vim auf der Console immer noch am besten.

Ich empfehle dir vor der if ne "case" zusetzen. Damit kannst du ungültige Paramenter abfangen.
Auch sollte man nicht blind Variablen einlesen. Beim Counten ist es ok. Denn bei Linux gibts da so markieren und rechte Maustaste, wenn da einer was falsches in der Zwischenablage hat, rumst es.

Nur so als Hinweis. Noch zu if-Anweisung.

if [ -f datei.txt ];then
echo "Datei vorhanden"
fi

if [ -d ordner ];then
echo "Ordner vorhanden"
fi

Auch solltest du die $# mit "" versehen. Wenn kein Wert angegeben ist, kann es auch zu nehm Fehler kommen. Also immer schön "" bei den if-Anweisungen verwenden.

Das aber für die Zukunft, wenn du mal vor dem Problem stehen solltest ne leere Variable einzubauen.
 
Alt 02.05.2012, 21:54   Posting #12 (im Thread / einzeln)
OBrian
Moderation MBDB
Moderation
 
Benutzerbild von OBrian
 
Registriert seit: 16.10.2000
Ort: NRW
Beiträge: 11.652
Man kann es doch mit jedem vernünftigen, d.h. bequemen Texteditor schreiben, statt sich mit vi einen abzubrechen. Nur eben im richtigen Zeilenumbruchformat erstellen/abspeichern. Ein halbwegs vernünftiger Editor bietet das an (z.B. bei Notepad++: Edit -> EOL Conversion). Und ggf. die Scriptdatei dann binär hochladen statt im Textmodus.
 
Alt 03.05.2012, 14:09   Posting #13 (im Thread / einzeln)
Ragas
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von Ragas
 
Registriert seit: 24.05.2005
Beiträge: 2.543
Zitat:
Zitat von Dalai Beitrag anzeigen
Ich hoffe, du hast dir keinen abgebrochen . Ich kann dem "Unsinn" Eingabemodus und Befehlsmodus von vi(m) absolut nichts abgewinnen. Nano hat eine vergleichsweise vernünftige Bedienweise, jedenfalls für solch einfache Dinge. Insofern verstehe ich auch nicht, wenn die im Netz zu findenden Anleitungen vi(m) verwenden und nicht die für Anfänger IMO besser geeigneten Editoren. Aber vielleicht bin ich einfach zu verwöhnt von anderen Editoren wie nano und mcedit .

MfG Dalai
Ein ungläubiger! Steinigt ihn!

Zitat:
Zitat von OBrian Beitrag anzeigen
Man kann es doch mit jedem vernünftigen, d.h. bequemen Texteditor schreiben, statt sich mit vi einen abzubrechen. Nur eben im richtigen Zeilenumbruchformat erstellen/abspeichern. Ein halbwegs vernünftiger Editor bietet das an (z.B. bei Notepad++: Edit -> EOL Conversion). Und ggf. die Scriptdatei dann binär hochladen statt im Textmodus.
Noch einer! *schonmal Steine sammelt*

Im ernst, ich konnte vim vorher auch nichts abgewinnen, aber ab einem gewissen Punkt limitiert nano einfach nur noch und vim hat unglaubliches potential. Derzeit benutze ich vielleicht 10% der Standardfunktionen von vim und bin damit trotzdem schon wesentlich schneller als mit nano.
.
EDIT :
.

Zitat:
Zitat von Green_Ranger Beitrag anzeigen
Auf Gefahr hin geschlagen zu werden: Ich habe aktuell gar kein Linux auf meinem PC installiert, ich benutze den SSH Client PuTTY um auf die Linux PCs an meiner Uni zuzugreifen... selbst wenn ich in der Uni lerne benutze ich ausschließlich die Windows Maschinen. Pure Gewohnheit, eventuell schaue ich mir mal die aktuelle Ubuntu Version an, wobei ich Unity extrem gewöhnungsbedürftig finde.
Versuch lieber Mint. Das is derzeit in.

Wenn du was richtung informatik studierst dann freunde dich lieber mit linux an. wenn nicht .. dann bleib halt bei windows wenn du es lieber magst.
(ich kann niemanden zu seinem glück zwingen ... zumindest nicht übers internet)
 
Alt 03.05.2012, 14:57   Posting #14 (im Thread / einzeln)
JKuehl
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von JKuehl
 
Registriert seit: 22.06.2003
Ort: Mainz
Beiträge: 5.200
@Ragas: hol schonmal Steine..

@Topiceröffner: entweder über eine VirtualBox ein gescheites Ubuntu installieren und GEDIT nutzen oder Notepad++ und den Zeilenumbruch auf Linux/Unix umstellen. Alternativ auch winscp und dort die Files im Editor bearbeiten.

vi, nano und emacs sind einfach nicht mehr zeitgemäß wenn man Zugriff auf eine GUI hat.
 
Alt 03.05.2012, 16:26   Posting #15 (im Thread / einzeln)
PuckPoltergeist
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von PuckPoltergeist
 
Registriert seit: 18.01.2002
Ort: Ilmenau
Beiträge: 11.391
Zitat:
Zitat von JKuehl Beitrag anzeigen
vi, nano und emacs sind einfach nicht mehr zeitgemäß wenn man Zugriff auf eine GUI hat.
Du hast mit keinem wirklich jemals richtig gearbeitet, stimmts?
 
Alt 03.05.2012, 16:29   Posting #16 (im Thread / einzeln)
Green_Ranger
Fleet Captain
Special
Fleet Captain
 
Benutzerbild von Green_Ranger
 
Registriert seit: 12.01.2004
Beiträge: 299
Zitat:
Zitat von Ragas Beitrag anzeigen
Versuch lieber Mint. Das is derzeit in.
Ich lade es gerade runter, am Wochenende kommt es mal in eine VM.
 
Alt 03.05.2012, 16:54   Posting #17 (im Thread / einzeln)
JKuehl
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von JKuehl
 
Registriert seit: 22.06.2003
Ort: Mainz
Beiträge: 5.200
Zitat:
Zitat von PuckPoltergeist Beitrag anzeigen
Du hast mit keinem wirklich jemals richtig gearbeitet, stimmts?
 
Alt 04.05.2012, 00:24   Posting #18 (im Thread / einzeln)
Ragas
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von Ragas
 
Registriert seit: 24.05.2005
Beiträge: 2.543
Zitat:
Zitat von JKuehl Beitrag anzeigen
... Ich sag nix.

Aber du hast recht. Nen schöner grafischer editor hat auch was.

Nur is mir bis jetzt noch keiner untergekommen mit dem es sich gut arbeiten lässt. Am ehesten mag ich immernoch gedit ... aber toll isses auch nit.
 
Alt 04.05.2012, 17:10   Posting #19 (im Thread / einzeln)
tspoon
Admiral
Special
Admiral
 
Benutzerbild von tspoon
 
Registriert seit: 23.04.2006
Ort: Dresden
Beiträge: 1.657
es sollte jeder den weg finden, wo er am schnellsten und besten ans ziel kommt. aber grad beim "bashen" komm ich halt mit vim am besten zurecht und ich rede hier nicht von 10 zeilen, sondern eher so von ca 1000 aufwärts

da man eh scripte für die console macht, ist der umweg über eine gui eher zeitraubend. in der zeit wo ich ":wq" sh ./testscript.sh eintippe, hast du nicht mit ner gui noch nicht abgespeichert. vi muss man nicht zu 100% kennen, aber suchen mit "/suchbegriff" + "n" für weitersuchen oder zeilenspringen mit ":102" (für Zeile 102) geht mit keiner gui schneller. andere bsp sind "dd" für zeile löschen, "i" für einfügen, "e" für ersetzen etc. in der zeit, wo man mit ner gui die maus in die hand nimmt hat man auf der console schon 3 zeilen getippt.

versuchmal mit nem gui-editor nen mysqldump von über 1 gb zu öffnen und dort in zeile 34000 nen fehler zu beheben. viel spaß
 
Alt 04.05.2012, 17:20   Posting #20 (im Thread / einzeln)
JKuehl
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von JKuehl
 
Registriert seit: 22.06.2003
Ort: Mainz
Beiträge: 5.200
1) In dumps behebe ich keine Fehler sondern direkt auf der Datenbank ;-)
2) STRG+L, 102 um in Zeile 102 zu springen halte ich noch für ebenso angenehm.
3) Zeile löschen? Okay auch hier eine Taste mehr: STRG+-->, entf
4) Einzeiler tippe ich eher selten in Files sondern führe die direkt im Terminal aus.

Aber ich versteh schon was du meinst - es kommt immer auf den Anwendungszweck an. Große Logfiles schaue ich mir auch nicht in nem Editor an sondern nehme gleich Chainsaw oder andere darauf spezialisierte Tools.
 
Alt 05.05.2012, 02:50   Posting #21 (im Thread / einzeln)
Ragas
Grand Admiral
Special
Grand Admiral
 
Benutzerbild von Ragas
 
Registriert seit: 24.05.2005
Beiträge: 2.543
Zitat:
Zitat von tspoon Beitrag anzeigen
in der zeit wo ich ":wq" sh ./testscript.sh eintippe, hast du nicht mit ner gui noch nicht abgespeichert.
.. du tippst echt :wq? mein prof hat immer gesagt dass die freundin die hornhaut die vom unnötigen tippen kommt nicht mag. :x spart zeit.
 
Alt 05.05.2012, 07:57   Posting #22 (im Thread / einzeln)
tspoon
Admiral
Special
Admiral
 
Benutzerbild von tspoon
 
Registriert seit: 23.04.2006
Ort: Dresden
Beiträge: 1.657
:wq aus dem Grund , weil ich nicht nur meine Scripte einsehe. Ist eher ne Art Sicherheit um nicht ausversehen Änderungen abzuspeichern. Auch ist es für mich angenehmer :wq einzugeben, hängt mit der Handposition auf der Tastatur zusammen

Mit den Shortcuts kann man auch in der GUI schnell unterwegs sein, auch werden die Kürzel ja für fast alle Programme übernommen. Bsp: STRG+F für suchen etc. Aber gegen die Behauptung vim sein "nicht mehr Zeit gemäß" wäre ich mich. Ein Admin der nur ssh-Zugang hat, weiß warum.
Es führen viele Wege zum Ziel, es ist halt die Frage welchen man beschreitet. Anderes Bsp wäre cut, (g)awk oder sed.

Achso und bitte nicht "vim" mit "vi" verwechseln, das sind Welten in der Bedienung.
 
Alt 05.05.2012, 20:42   Posting #23 (im Thread / einzeln)
Lokadamus
Cadet
 
Benutzerbild von Lokadamus
 
Registriert seit: 14.11.2004
Beiträge: 27
Zitat:
Zitat von Green_Ranger Beitrag anzeigen
Ich glaube ich habe den Fehler gefunden, ich habe die Datei mit Ultraedit auf einem Windows PC erstellt
mmm...

UltraEdit kostet doch Geld, oder?
http://notepad-plus-plus.org/
http://www.flos-freeware.ch/notepad2.html
http://de.wikipedia.org/wiki/Scintilla
 
Alt 24.05.2012, 08:34   Posting #24 (im Thread / einzeln)
Tuxist
Lt. Commander
Lt. Commander
 
Benutzerbild von Tuxist
 
Registriert seit: 02.05.2005
Beiträge: 138
das Problem ist einfaches und nennt newline

unter windows:
"\r\n"
unter linux:
"\n"

und WinXp ganz böse wegen falscher codierung.

notepad++ ganz das zum beispiel umstellen.

Ich selber nutze am liebsten kate der kann man das auch umstellen und den müsste es
mittlerweile auch unter win geben.
 
  Antwort
 

Themen-Optionen
Ansicht

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.



Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2013, vBulletin Solutions, Inc.
Inhalte und Bilder - Copyright ©1999 - 2013 - Planet 3DNow!