mehrzeiliges Kommando mit Kommentaren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

mehrzeiliges Kommando mit Kommentaren

Beitrag von MoonKid » 14.02.2014 16:47:36

Ich habe sowas in der Art.

Code: Alles auswählen

apt-get install p1 p2 p3 /
p4 p5 /
p6 p7
Nun möchte ich der Übersicht halber auch Kommentare in das Script mit einbauen. Ein # hinter oder zwischen die Zeilen verwirrt bash aber. Gibt es ne Möglichkeit?

michaa7
Beiträge: 4919
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: mehrzeiliges Kommando mit Kommentaren

Beitrag von michaa7 » 14.02.2014 19:47:20

MoonKid hat geschrieben:Ich habe sowas in der Art.

Code: Alles auswählen

apt-get install p1 p2 p3 /
p4 p5 /
p6 p7
Nun möchte ich der Übersicht halber auch Kommentare in das Script mit einbauen. Ein # hinter oder zwischen die Zeilen verwirrt bash aber. Gibt es ne Möglichkeit?
Schau mal:
http://debianforum.de/forum/viewtopic.p ... 50#p974450

versuch mal:
apt-get install p1 p2 p3 # kommentar \
p4 p5 # kommentar \
p6 p7 # kommentar
Das muß aussederm ein *back*slash sein! Der slash verbindet die codezeilen *nicht*.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: mehrzeiliges Kommando mit Kommentaren

Beitrag von rendegast » 14.02.2014 20:17:14

apt-get install p1 p2 p3 /
p4 p5 /
p6 p7
Einmal, es ist wohl backslash \ statt slash / gemeint.

In der manpage:
backslash gefolgt von newline werden entfernt.
Ein # comment kann nur hinter einem Kommendo stehn, nicht aber inerhalb.

Mein Vorschlag

Code: Alles auswählen

pack=
pack="$pack p1 p2 p3"       # comment
# comment
pack="$pack p4 p5"       # comment
# comment
pack="$pack p6 p7"       # comment
# comment

apt-get install $pack       # comment
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: mehrzeiliges Kommando mit Kommentaren

Beitrag von Cae » 14.02.2014 23:31:23

Inline-Kommentare gehen wohl nur mit Hacks [1] wie

Code: Alles auswählen

#!/bin/sh

date -u $(echo >/dev/null "-u == UTC") +%F.%T
-u == UTC ist dabei der volle Kommentar (was kuerzeres nach demselben Prinzip ist mir nicht eingefallen). Das kann man natuerlich auch fuer umgebrochen Zeilen verwenden:

Code: Alles auswählen

apt-get install hello \
	$(echo >/dev/null "hping3 python-bitarray") \
	tcpdump nmap
Ist viel zu aufwaendig (zu tippen), da ist eine Aufspaltung in Variablen erheblich besser geeignet, wie rendegast schon vorgeschlagen hatte.

Gruss Cae

[1] immerhin entsteht dabei keine Subshell, weil diese nur aus Shell-Builtins bestehen wuerde:

Code: Alles auswählen

$ strace -fe process -o /dev/stderr sh foo 2>&1 >/dev/null | grep execve
10341 execve("/bin/sh", ["sh", "foo"], [/* 33 vars */]) = 0
10343 execve("/bin/date", ["date", "-u", "+%F.%T"], [/* 33 vars */]) = 0
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten