![]() |
|
|
|||
|
|||||||
| Hilfe | Registrieren | Blogs | Mainboarddatenbank | Galerie | Extras | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
Posting #1 (im Thread / einzeln) |
|
Green_Ranger
Fleet Captain
Special ![]() 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 Code:
-bash-4.1$ sh test.sh 2 3 5 Anzahl der Argumente: 3 test.sh: line 6: syntax error: unexpected end of file Code:
echo "Anzahl der Argumente: $#" if [$# != 3] then echo "Falsche Anzahl an Parametern" fi Bitte um hilfe. |
|
|
Posting #3 (im Thread / einzeln) |
|
Green_Ranger
Fleet Captain
Special ![]() 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.
|
|
|
Posting #4 (im Thread / einzeln) |
|
tomturbo
Technische Administration
Dinosaurier ![]() Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
|
Also das:
PHP-Code:
![]() Ich habe eine bash 4.2 |
|
|
Posting #5 (im Thread / einzeln) |
|
Green_Ranger
Fleet Captain
Special ![]() 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.
|
|
|
Posting #6 (im Thread / einzeln) |
|
tomturbo
Technische Administration
Dinosaurier ![]() Registriert seit: 30.11.2005
Ort: Österreich
Beiträge: 4.638
|
|
|
|
Posting #7 (im Thread / einzeln) | ||
|
Dalai
Grand Admiral
Special ![]() Registriert seit: 13.06.2004
Ort: Meiningen, Thüringen
Beiträge: 5.730
|
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:
Zitat:
. 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 |
||
|
|
Posting #8 (im Thread / einzeln) |
|
Green_Ranger
Fleet Captain
Special ![]() 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.
|
|
|
Posting #10 (im Thread / einzeln) | |
|
Dalai
Grand Admiral
Special ![]() Registriert seit: 13.06.2004
Ort: Meiningen, Thüringen
Beiträge: 5.730
|
Zitat:
.MfG Dalai |
|
|
|
Posting #11 (im Thread / einzeln) |
|
tspoon
Admiral
Special ![]() 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. |
|
|
Posting #12 (im Thread / einzeln) |
|
OBrian
Moderation MBDB
![]() 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.
|
|
|
Posting #13 (im Thread / einzeln) | |||
|
Ragas
Grand Admiral
Special ![]() Registriert seit: 24.05.2005
Beiträge: 2.543
|
Zitat:
Zitat:
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:
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) |
|||
|
|
Posting #14 (im Thread / einzeln) |
|
JKuehl
Grand Admiral
Special ![]() 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. |
|
|
Posting #15 (im Thread / einzeln) |
|
PuckPoltergeist
Grand Admiral
Special ![]() Registriert seit: 18.01.2002
Ort: Ilmenau
Beiträge: 11.391
|
|
|
|
Posting #16 (im Thread / einzeln) |
|
Green_Ranger
Fleet Captain
Special ![]() Registriert seit: 12.01.2004
Beiträge: 299
|
|
|
|
Posting #19 (im Thread / einzeln) |
|
tspoon
Admiral
Special ![]() 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ß
|
|
|
Posting #20 (im Thread / einzeln) |
|
JKuehl
Grand Admiral
Special ![]() 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. |
|
|
Posting #22 (im Thread / einzeln) |
|
tspoon
Admiral
Special ![]() 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. |
|
|
Posting #23 (im Thread / einzeln) | |
|
Lokadamus
Cadet
Registriert seit: 14.11.2004
Beiträge: 27
|
Zitat:
UltraEdit kostet doch Geld, oder? http://notepad-plus-plus.org/ http://www.flos-freeware.ch/notepad2.html http://de.wikipedia.org/wiki/Scintilla |
|
|
|
Posting #24 (im Thread / einzeln) |
|
Tuxist
Lt. Commander
![]() 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. |