Ich habe zuerst gelernt, wie man in einer C
Sprache codiert und verwendet
if ( code )
then
code
fi
macht es mir wirklich schwer, meinen Code zu lesen (frag nicht warum). Gibt es einen Ersatz für then
?
Etwas wie das:
if ( code ) {
code
}
fi
Ich habe zuerst gelernt, wie man in einer C
Sprache codiert und verwendet
if ( code )
then
code
fi
macht es mir wirklich schwer, meinen Code zu lesen (frag nicht warum). Gibt es einen Ersatz für then
?
Etwas wie das:
if ( code ) {
code
}
fi
Antworten:
Es gibt keinen Ersatz, aber Sie können beide verwenden, wenn Sie die Zahnspange wirklich benötigen:
if true ; then {
something
} fi
Dabei wird eine unnötige explizit geschweifte Befehlsgruppe als Hauptteil des then
Blocks verwendet. Alle Befehle in den geschweiften Klammern werden nur in der aktuellen Shell ausgeführt, wenn sie ausgeführt werden then
, genau so, als ob die geschweiften Klammern nicht vorhanden wären.
Ich würde diesen Stil im Allgemeinen oder für Code, den jemand anderes lesen muss, nicht wirklich empfehlen, aber er gibt Ihnen die gewünschten Klammern, und er reicht aus, wenn Sie einen Editor verwenden, der Klammern oder Blöcke erfordert sowas in der Art.
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- Wenn Sie bash
genug verwenden, wird die Standardsyntax im Grunde genug vertraut, so dass es kein großes Problem ist.
Sie scheinen für das zu suchen C - Shell ( csh
, tcsh
, etc ...). Beachten Sie, dass Experten für die Programmierung dagegen raten .
Ich bin mir nicht sicher, ob der Teil, den Sie für unattraktiv halten, then
in der folgenden Zeile steht. In diesem Fall sollten Sie den folgenden Stil verwenden:
if condition; then
stuff
fi
Ich muss zugeben, dass Rechtschreibanweisungen rückwärts wie fi
für if
und esac
für case
(aber nicht elihw
für while
!) Etwas eigenartig sind. Aber das ist die Standard-Bourne-Shell, die portabelste Shell-Syntax, die Sie verwenden können.
then
unattraktiv. Mein Editor hebt nur die entsprechenden {}
Paare hervor. Dies ist hilfreich, wenn ich einen Fehler habe, da ich dann alle meine if
Aussagen leicht sehen und feststellen kann, ob etwas schief gelaufen ist .
vi
, %
der zur passenden Klammer / Klammer / Klammer springt. Ich sympathisiere. Ich vermisse vi
den %
Befehl beim Programmieren in Python.
Vielleicht schont das die Augen:
[ condition ] && {
# statement 1
# statment 2
# ...
}
Ansonsten gewöhne dich einfach daran. Verwenden Sie die Redewendungen der Sprache.
Das Folgende ist in der Nähe von dort. Und komisch.
: if; { code; } && {
code
}
Ich persönlich mochte die ...
if true; then
more;fi
... bilde mich. Ich mag es, wenn die Kontrollwörter führen . Es kam mir immer seltsam vor, dass die vorherrschende ...;then
Form überhaupt zustande kam.
if this && that
then do these things too
else i will probably get upset
fi
Es ist fast völlig entgegengesetzt zu Ihrer Anfrage, aber es ist eine andere Möglichkeit, dies zu tun. Sie können bei Bedarf auch beliebige Weiterleitungen an die fi
Zeile anheften, die für den gesamten Block gelten.
if(...) {
, dh die öffnende Klammer bleibt in derselben Zeile wie if
in C-ähnlichen Sprachen.
if
Befehls suchen , auch wenn er sich in der nächsten Zeile befindet.
;
in diesem Fall müssen Sie das Delim verwenden. Deshalb tun sie es.
:
eingebaute Shell verwenden, damit eine Codezeile byteweise näher an der C-Syntax liegt, sollte dies in keiner Weise gefördert werden.
Ich benutze immer:
if (code); then
code;
fi
Wahrscheinlich nicht genau das, was Sie wollen, aber es ist ein bisschen mehr wie.