Ich bin kürzlich auf eine zsh
Codezeile gestoßen
ls_colors_parsed=${${(@s.:.)LS_COLORS}/(#m)\**=[0-9;]#/${${MATCH/(#m)[0-9;]##/$MATCH=$MATCH=04;$MATCH}/\*/'=(#b)($PREFIX:t)(?)*'}}
Dies verbrennt nicht nur meine Augäpfel, es liegt auch weit über der 80-Zeichen-Grenze. Leider sehe ich keinen klaren Weg, um es zu verkürzen. Ich habe viele Zeilen wie diese (aus lächerlich komplizierten Substitutionen, die nicht in Stücke geschnitten werden können). Was ist die kanonische Art, mit solchen Zeilen umzugehen, wenn ich möchte, dass sie <80 Zeichen lang sind?
\\n
überall.Antworten:
Sie können lange Zeilen durch maskierte Zeilenumbrüche unterbrechen ,
\
gefolgt von einer neuen Zeile:WARNUNG
Während Sie auf diese Weise fast überall eine Linie brechen können, gibt es Ausnahmen. Es wird nicht innerhalb eines einzigen zitierten Textes oder nach der Arbeit
\
einer Escape - Sequenz (\n
,\x40
, ...). Einige andere Shell-Konstrukte können ebenfalls beschädigt werden: Wenn Sie versuchen, zwischen($PREFIX
und:t)
in Ihrem Beispiel zu brechen , funktioniert dies nicht richtig.quelle
Sie könnten so etwas tun wie:
Die Zeilenumbrüche, die von Abstandszeichen umgeben sind, werden entfernt, bevor sie
eval
zur Interpretation übergeben werden.quelle
${param/ /
)