ubuntuusers.de

Bash-Einrücken

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

neongelbe

Anmeldungsdatum:
10. September 2009

Beiträge: 136

Habe eigentlich nur eine kleine Frage. Wie viele Leerzeichen rückt man einen Anweisungsblock in der Bash typischerweise ein? Oder macht man das einfach, wie es grade gefällt?

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Servus,

mit einem Tab. 😉

Aber bei der Frage kriegst du bei fünf anwesenden Leuten auch immer 42 Antworten. Das ist so ein kleiner Glaubenskrieg mal wieder.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

mit einem Tab. 😉

Das ist so ein kleiner Glaubenskrieg mal wieder.

Das ist wieder kein Glaubenskrieg, sondern es gibt Positionen, die man argumentativ stützen kann, und alle anderen braucht man gar nicht erst anzuschauen.

Da es keinen Standard gibt, wie man kennzeichnet, welchen Einrückungsstil man verwendet verbietet es sich Tabulatoren und Blanks zu mixen. Mehr als ein Blank zu tippen ist aber unökonomisch, also rückt man mit Tabs ein.

Das ist eine ganz einfache Begründung, und sie ist weit von jeder Art Glauben entfernt. Wohltuend entfernt, um das zu unterstreichen.

linopolus

Avatar von linopolus

Anmeldungsdatum:
21. Juli 2008

Beiträge: 986

Wohnort: Ottendorf-Okrilla

user unknown schrieb:

mit einem Tab. 😉

Das ist so ein kleiner Glaubenskrieg mal wieder.

Das ist wieder kein Glaubenskrieg, sondern es gibt Positionen, die man argumentativ stützen kann, und alle anderen braucht man gar nicht erst anzuschauen.

richtig

Da es keinen Standard gibt, wie man kennzeichnet, welchen Einrückungsstil man verwendet verbietet es sich Tabulatoren und Blanks zu mixen. Mehr als ein Blank zu tippen ist aber unökonomisch, also rückt man mit Tabs ein.

Falsch. Deshalb stellt man seinen Editor auf sogenannte Soft Tabs, sprich man tippt auf die Tabulator Taste auf der Tastatur, aber der Editor macht X Leerzeichen draus, wobei für X vorzugsweise 2 eingesetzt wird. Mit Tabs hat man nur das Problem, dass jeder seinen Editor auf eine andere Tabgröße eingestellt hat, und in der Konsole hat es normalerweise eine Tabgröße von 8, was wenn man in seinem Editor 2 oder 4 eingestellt hat, dann sehr hässlich aussieht.

Das ist eine ganz einfache Begründung, und sie ist weit von jeder Art Glauben entfernt. Wohltuend entfernt, um das zu unterstreichen.



Also zusammenfassend: Im Editor Softtabs einstellen, wie viele Leerzeichen ist egal, ich plädiere für 2.

m-a-s-a

Avatar von m-a-s-a

Anmeldungsdatum:
1. November 2009

Beiträge: 406

Wohnort: Söm

Also ich halte das genauso wie von linopolus beschrieben mit den 2 Leerzeichen als Softtab.

MFG Matthias

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Richtige Tabs erlauben es jedem User selbst einzustellen wie er es angezeigt bekommt. Blanks dagegen zwingen den anderen Deine Vorlieben auf.

in der Konsole hat es normalerweise eine Tabgröße von 8

Aus gutem Grund.

linopolus

Avatar von linopolus

Anmeldungsdatum:
21. Juli 2008

Beiträge: 986

Wohnort: Ottendorf-Okrilla

user unknown schrieb:

Richtige Tabs erlauben es jedem User selbst einzustellen wie er es angezeigt bekommt. Blanks dagegen zwingen den anderen Deine Vorlieben auf.

Richtig, nur nützt das niemandem wenn es dann nicht mehr wirklich lesbar ist weil alles irgendwie komisch eingerückt ist. Nicht ohne Grund geben Projekte die Tabs verwenden immer an wie groß die Tabs sein sollen. Wahlfreiheit hast du also dadurch auch nicht.

in der Konsole hat es normalerweise eine Tabgröße von 8

Aus gutem Grund.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

linopolus schrieb:

user unknown schrieb:

Richtige Tabs erlauben es jedem User selbst einzustellen wie er es angezeigt bekommt. Blanks dagegen zwingen den anderen Deine Vorlieben auf.

Richtig, nur nützt das niemandem wenn es dann nicht mehr wirklich lesbar ist weil alles irgendwie komisch eingerückt ist.

Wofür ist das gut, außer um Tabs mit Blanks zu mischen? Oder was sonst meinst Du mit 'komisch eingerückt'? Komisch eingerückt ist es, wenn jmd. mal dies, mal jenes gemacht hat, und man wissen muss, wieviele Blanks ein Tab sind, damit es nicht mehr komisch aussieht, sondern wie bei diesem Moron.

Nicht ohne Grund geben Projekte die Tabs verwenden immer an wie groß die Tabs sein sollen.

Tun sie das? Kennst Du alle Projekte, die Tabs verwenden?

linopolus

Avatar von linopolus

Anmeldungsdatum:
21. Juli 2008

Beiträge: 986

Wohnort: Ottendorf-Okrilla

sorry, ich wollte natürlich meistens schreiben, und natürlich kann ich nur von Projekten sprechen, die ich kenne. Ich kann aber auch sagen, dass ich selber schon Dateien geschrieben habe, Tabgröße 2 und ohne softtabs, und die danach bei der Ausgabe durch cat furchtbar aussahen, obwohl ich konsequent nur Tabs verwendet habe.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

m-a-s-a schrieb:

Also ich halte das genauso wie von linopolus beschrieben mit den 2 Leerzeichen als Softtab.

Das habe ich in meinen "Anfängertagen" auch getan ... ☺

Aber auf längere Sicht ist das doch ziemlich unübersichtlich. Deshalb benutze ich in Shell-Scripten heute genau wie Vain und user unknown den [TAB] zum einrücken.
Das macht vor allem deshalb Sinn, weil Shell-Skripte eher nicht besonders tief verschachtelt sind.

Alternativ habe ich auch schon 4 Leerzeichen tiefe Soft-TABs gesehen (wenn man es nicht ganz so tief haben will).

Aber weniger ...? - nee, man darf es zwar, aber Du siehst es praktisch nie bei "etablierten" Skripten.
Wie gesagt ...

LG,

track

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

linopolus schrieb:

Ich kann aber auch sagen, dass ich selber schon Dateien geschrieben habe, Tabgröße 2 und ohne softtabs, und die danach bei der Ausgabe durch cat furchtbar aussahen, obwohl ich konsequent nur Tabs verwendet habe.

a) Und inwiefern sahen sie furchtbar aus? Einfach ungewohnt? So, wie sie bei jedem aussehen, der Tabs mit Einrückung auf 8er-Positionen macht - egal ob Soft oder nicht?

b) Wieviel Aufwand wäre es denn, einen Ersatz für cat zu schreiben, der mit sed aus Tab zwei Blanks macht?

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

Hi

Auch, wenn es KEIN Glaubenskrieg sein soll ... es liest sich genau nach so Einem!!

Zum 'komisch aussehen' - so ganz ohne, daß ich irgend Einem hier was 'beweisen müsse' oder beim 'S(hwanzvergleich' hier unbedingt mitmachen müsste ... durch die Nutzung von TAB's werden die Blöcke eben 8 Zeichen eingerückt (pro TAB) - in einer Schleife, in einer If, darin eine Case-Abfrage ... da kommen recht schnell einige TAB's zusammen und auf Deinem DIN-A-0 Drucker passen die Zeilen gerade so noch auf's Papier - aber bestimmt nicht mehr auf Deinen Monitor - Zeilenumbrüche mit 'Restzeilen' direkt am Zeilenanfang ... ich würde es 'komisch aussehend' nennen oder schwer lesbar.

Selbst rücke ich (ACHTUNG, neue Variante) 3 Space ein

So, jetzt könnt Ihr auch hier rummeckern, oder es jeden so machen lassen, wie er es macht, feddisch. Es geht nur darum, daß man den Block bzw. die Tiefe der Schachtelung erkennt.

MfG

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

user unknown schrieb:

b) Wieviel Aufwand wäre es denn, einen Ersatz für cat zu schreiben, der mit sed aus Tab zwei Blanks macht?

Wenn man nicht gerade sed benutzt (mangelnde Encoding-Unterstützung) nicht viel, aber das löst das Problem nicht. Denn das Tabulatorzeichnen bedeutet nicht "Zeige hier X Leerzeichen an", sondern "Zeige Leerzeichen an bis modulo X des aktuellen Zeilenwerts 0 ist". Solange man nur Tabs am Anfang einer Zeile benutzt und die maximale Zeichenlänge nicht erreicht, ist man natürlich fein raus, beides liefert das gleiche Ergebnis. Aber wehe nicht ...

Dass Tabs ein Argument für die Konfigurierbarkeit der Anzeige sind, kann man so auch nicht stehen lassen. Jeder ernsthafte Editor erlaubt Ein- und Ausgabefilter für Indentiation. Wer will kann sich Y Leerzeichen locker durch X ersetzen lassen.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

posti schrieb:

Hi

Auch, wenn es KEIN Glaubenskrieg sein soll ... es liest sich genau nach so Einem!!

Wieviele Glaubenskriege hast Du denn schon im Internet verfolgt?

Zum 'komisch aussehen' - so ganz ohne, daß ich irgend Einem hier was 'beweisen müsse' oder beim 'S(hwanzvergleich' hier unbedingt mitmachen müsste ... durch die Nutzung von TAB's werden die Blöcke eben 8 Zeichen eingerückt (pro TAB) - in einer Schleife, in einer If, darin eine Case-Abfrage ... da kommen recht schnell einige TAB's zusammen und auf Deinem DIN-A-0 Drucker passen die Zeilen gerade so noch auf's Papier - aber bestimmt nicht mehr auf Deinen Monitor -

Mein Drucker kann nur A4, aber ich drucke auch nicht oft Quellcode, sondern nutze einen schon fast antiquarisch zu nennenden 4:3 Moni. Und wenn ich alle Shellscripte anschaue, die sich in meinem ~/bin - Ordner angesammelt haben, so ist die tiefste Einrückungsstufe die ich da erreicht habe über die Jahre 6. Und wenn ich das mit cat ausgebe -

1
cat ~/bin/*sh 

dann sieht man, dass da spielend 12 Einrückungstiefen passen würden, denn 12*8 ist 96, und das Display macht 112 Zeichen in der aktuellen Schrift.

Wenn die bessere Tabulatorpolicy zu kürzeren Methoden erzieht kann das auch nur begrüßt werden.

Zeilenumbrüche mit 'Restzeilen' direkt am Zeilenanfang ... ich würde es 'komisch aussehend' nennen oder schwer lesbar.

Das passiert nur Textausgabe oder Kommentaren, oder irre ich mich?

Selbst rücke ich (ACHTUNG, neue Variante) 3 Space ein

Du musst Dich nicht selbst belasten. ☺

So, jetzt könnt Ihr auch hier rummeckern, oder es jeden so machen lassen, wie er es macht, feddisch. Es geht nur darum, daß man den Block bzw. die Tiefe der Schachtelung erkennt.

Unter Linux darf natürlich nicht ein Link zum Meister fehlen: http://lxr.linux.no/#linux+v2.6.37.2/Documentation/CodingStyle auch wenn sich das auf Kernelsource, aka C-Code bezieht. Man kann dort viele, wertvolle Anregungen abgreifen, und dann geläutert zum Pfad der Tugend mit der magischen Zahl 8 zurückkommen.

Ich notiere mir hier schonmal die Namen der Abweichler, aber keine Angst - das hat nichts zu bedeuten. ☺

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

adun schrieb:

Denn das Tabulatorzeichnen bedeutet nicht "Zeige hier X Leerzeichen an", sondern "Zeige Leerzeichen an bis modulo X des aktuellen Zeilenwerts 0 ist". Solange man nur Tabs am Anfang einer Zeile benutzt und die maximale Zeichenlänge nicht erreicht, ist man natürlich fein raus, beides liefert das gleiche Ergebnis. Aber wehe nicht ...

Lieber Adun, ich bin dankbar für den Hinweis. Man beachte folgenden Code:

1
2
3
4
5
contains                                  &&  echo  fail 1
contains  foo                             &&  echo  fail 2
contains  foo    foo                      ||  echo  fail 3
contains  foo    bar    foobar  baz  biz  &&  echo  fail 4
contains  bar    bar    foobar  baz  biz  ||  echo  fail 5

Wie schön übersichtlich - nicht wahr? Mit Tabwidth=2, welch ein Festival für die Tastatur! ☺ Da gewinnt der Begriff 'Handarbeit' ganz neue Bedeutung. ☺

Antworten |