Ich habe ein Skript von einer anderen Person, das einen Blick darauf hat (Hinweis: Es ist eine einzelne Datei):
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
Ich frage mich, was der Zweck des zweiten und dritten Schebangs ist. Ist es versehentlich oder absichtlich?
bash
shell-script
shebang
Barat Sahdzijeu
quelle
quelle
#!/bin/bash
Wird dem<<
Konstrukt (hier Dokument) das Fremde vorangestellt als :some command <<end_of_script_flag
?<<
Konstrukte. Einfach nur Shebangs und einige Entfernungsbefehle (dies war ein Deinstallationsskript)#!
Zeilen?Uninstall.command
(Plattform: Mac OS X).Antworten:
Wenn diese Zeilen nicht der Anfang der zu erstellenden enthaltenen Shell-Skripte sind, dh innerhalb eines Schemas des Formulars:
Dann ist das wiederholte Konstrukt, das Sie gefunden haben, das Ergebnis vieler
copy
-paste
vollständiger Shell-Skripte, aber ohne ausreichende Sorgfalt und Verständnis für die Verwendung dieser ganz besonderen Kommentare in Zeile 1 der Skripte, beginnend mit#!
.Seien Sie vorsichtig, bevor Sie ein solches Shell-Skript verwenden (nein
sudo
, neinsu
:)).quelle
/bin/rm
(+ Dummy-Zeug zum Füttern des Roboters)!source
sie mit Namen versehen würden. Ich sehe jedoch nicht die Notwendigkeit, dass das Gehirn einen Kommentar abgibt. Auf diese Weise ist es vollkommen zulässig und genau aus diesem Grund ist der Shebang eine Kommentarzeile.Kein Zweck, dies sind nur Kommentare. Es sei denn, 'einige Befehle' enthalten einige Befehle, die diese zur späteren Ausführung in einer separaten Datei speichern.
quelle
rm
Vorgängen, mit denen einige Anwendungen deinstalliert werden. Ich dachte, dass es mit dem Gabeln einer neuen Shell zusammenhängen könnte, aber anscheinend war es schmutziges Kopieren und Einfügen durch den Skriptersteller.#!
gleiche Verwendung auf Kernel-Ebene (sieheman execve
) auf jedem Unix-System (OpenBSD, FreeBSD, MacOS X, Kali-Linux…). Dasbash
sieht das einfach als Kommentar.mv ln cp dd vi ...
zusammen mit 200 anderen Befehlen? Warum betonen Sie sie nicht auch? Sie könnten sich ausgeschlossen fühlen.