Antworten:
Sie können so etwas tun:
the_ppa=... # e.g. the_ppa="ondrej/apache2"
if ! grep -q "^deb .*$the_ppa" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
# commands to add the ppa ...
fi
Anmerkungen:
grep
wird mit Erfolg beendet, wenn eine Übereinstimmung gefunden wird!
negiert dies, so dass die Befehle ausgeführt werden, wenn keine Übereinstimmung = ppa nicht hinzugefügt wird-q
Flagge wird grep
leise , sodass die übereinstimmenden Zeilen nicht gedruckt werden. Es wäre nur Rauschen, wir müssen nur wissen, ob es eine Übereinstimmung gibt oder nicht, für die der Exit-Code perfekt ist^deb .*
Präfix soll sicherstellen, dass die übereinstimmende Zeile mit beginnt deb
, um auskommentierte Zeilen auszuschließenÖffnen Sie Ihr Terminal und geben Sie diesen Befehl ein
grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger
Nebelmaschine durch PPA-Namen ersetzen.
Entfernen Sie list.save-Dateien, Quellen, stellen Sie nur Deb-Zeilen sicher und zählen Sie sie für "fogger" ppa:
ppa_added=`grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v list.save | grep -v deb-src | grep deb | grep fogger | wc -l`
echo $ppa_added
deb
Zeilen, die auskommentiert sind, beginnend mit # deb
und Zeilen aus Dateien wie foo-ppa.list.distUpgrade
- ist das beabsichtigt?