Ich schreibe ein Skript, das eine Datei lesen muss, die Informationen zu einem Paket enthält, für das ich diese Zeile geschrieben habe
apt show $PACKAGE_NAME > pack_info.txt
Dies erstellt jedoch nicht die pack_info.txt
Datei und gibt immer diese Warnung aus:
WARNUNG: apt hat keine stabile CLI-Schnittstelle. In Skripten mit Vorsicht verwenden.
Vorläufig habe ich versucht, beide umzuleiten STDOUT
und zu STDERR
verwenden, &>
und es hat sich herausgestellt, pack_info.txt
dass wir eine Datei erhalten , die wir brauchen.
Ich habe auch versucht, Inhalte von zu bekommen, dpkg
und das hat auch funktioniert:
dpkg -s $PACKAGE_NAME > pack_info.txt
Was gut ist, dass es weder eine Warnung noch einen Fehler zeigt.
Was ist schlecht, dass wir nicht dpkg verwenden wollen und nur wollen, dass STDOUT von apt in die Datei umleitet.
Ich muss also drei Fragen stellen:
- Was genau verstehen wir unter stabiler CLI-Schnittstelle?
- Wie können solche Befehle in Skripten sicher und fehlerfrei verwendet werden? [bitte am Beispiel erläutern]
- Gibt es eine Möglichkeit, STDOUT nur
apt show
in eine Datei umzuleiten ?
quelle