Ich möchte in der Lage sein, ein einzelnes Flag in einem einzeiligen Befehl auskommentieren zu können. Bash scheint nur from # till end-of-line
Kommentare zu haben . Ich sehe Tricks wie:
ls -l $([ ] && -F is turned off) -a /etc
Es ist hässlich, aber besser als nichts. Gibt es einen besseren Weg?
Folgendes scheint zu funktionieren, aber ich bin nicht sicher, ob es portabel ist:
ls -l `# -F is turned off` -a /etc
#comment
Trick wird auch hier erwähnt: stackoverflow.com/questions/9522631/…${IFS#comment}
von @pjh eingeführt in den Kommentaren. Es wird keine Unter-Shell aufgerufen.Antworten:
Mein bevorzugter ist:
Kommentieren in einem Bash-Skript
quelle
$(#comment)
funktioniert nicht.)
als Teil des Kommentars. Die meisten Herausforderungen von Bash sind auf die Retro-Kompatibilität mit älteren Versionen zurückzuführen, und eine gängige Strategie besteht darin, die älteste mögliche Lösung zu verwenden.true && `# comment` && true
ist ein gültiger Ausdruck. Ein echter Kommentar würde so etwas wiesyntax error near unexpected token
Ich finde es am einfachsten (und am besten lesbar), einfach die Zeile zu kopieren und die Originalversion zu kommentieren:
quelle
$(: ...)
ist etwas weniger hässlich, aber immer noch nicht gut.quelle
$(: ...)
Syntax das Einbetten von Kommentaren nicht zuzulassen scheint: Währendecho "foo" `# comment` "bar"
der Kommentar beim zweiten Backtick beendet wird, analysiert das angebliche Äquivalentecho "foo" $(: # comment) "bar"
nichts hinter dem#
.Wie wäre es, es in einer Variablen zu speichern?
quelle
Hier ist meine Lösung für Inline-Kommentare zwischen mehreren Pipe-Befehlen.
Beispiel für einen unkommentierten Code:
Lösung für einen Pipe-Kommentar (mithilfe einer Hilfsfunktion):
Oder wenn Sie es vorziehen, hier ist die gleiche Lösung ohne die Hilfsfunktion, aber es ist etwas chaotischer:
quelle
Bei den meisten Befehlen können Argumente in beliebiger Reihenfolge eingegeben werden. Bewegen Sie einfach die kommentierten Flags an das Ende der Zeile:
Um es wieder einzuschalten, kommentieren Sie einfach den Text aus und entfernen Sie ihn:
quelle
#
nach dem Befehl ohne ein einziges Leerzeichen hinzugefügt . Danke!Wenn Sie wissen, dass eine Variable leer ist, können Sie sie als Kommentar verwenden. Wenn es nicht leer ist, wird es natürlich Ihren Befehl durcheinander bringen.
§ 10.2. Parameterersetzung
quelle
${name:=comment}
, um sicher zu sein.Um einen Teil eines Befehls wie zu deaktivieren
a && b
, habe ich einfach ein leeres Skript erstellt,x
das sich auf dem Pfad befindet, damit ich Folgendes tun kann:wenn ich bauen muss, und
wenn nicht (mit Ctrl + AundCtrl + E zum Anfang und Ende gehen).
Wie in den Kommentaren erwähnt, ist eine andere Möglichkeit, dies zu tun, Bash eingebaut
:
anstelle vonx
:quelle
:
Wie in:string; of; commands; : disabled; enabled;
Wenn der Kommentar einen Kommentar wert ist, kann er wahrscheinlich am Ende der Zeile oder in einer eigenen Zeile stehen. Ich finde selten einen Bedarf an Inline-Kommentaren mit Code vor und nach dem Kommentar in einer beliebigen Sprache.
Oh, es gibt eine Ausnahme, nämlich den SQL-Dialekt, den ich normalerweise verwende und der '{Kommentare}' verwendet. Gelegentlich werde ich schreiben:
Aber auch das ist eine Strecke.
quelle