Ich gehe davon aus, dass Sie den Inhalt der Variablen geändert haben IFS
. Ich empfehle, Ihre IFS-Variable auf ihren Standard zurückzusetzen:
IFS=$' \t\n'
Ich möchte eine große Datei von Abhängigkeiten mit Kommentaren und Zeilenumbrüchen organisieren. Zum Beispiel:
# Widget 1 dependences package_a package_b # Widget 2 dependencies package_x package_y package_z
Diese Zeile schien sinnvoll zu sein, aber ich verstehe nicht, warum ich die Fehlermeldung bekomme, dass Elemente aus der Liste nicht genau gefunden werden können.
E: Unable to locate package f2c gfortran libblas-dev liblapack-dev libpcre3-dev libreadline-dev
Es ist, als würde meine gesamte Whitespace-Liste als ein Paket behandelt.
# Use 'strict mode', because i don't looove debugging #!/bin/bash set -euo pipefail IFS=$'\n\t' sudo apt-get install $(grep -vE "^\s*#" my_dependencies | tr "\n" " ") echo "$(grep -vE "^\s*#" my_dependencies | tr "\n" " ")"
Ich gehe davon aus, dass Sie den Inhalt der Variablen geändert haben IFS
. Ich empfehle, Ihre IFS-Variable auf ihren Standard zurückzusetzen:
IFS=$' \t\n'
Wenn Sie das Zeilenvorschubzeichen übersetzen, müssen Sie ein Feldtrennzeichen verwenden, das im strengen Bash-Modus gültig ist, damit die Wortaufteilung funktioniert. Tab oder \t
wird hier ausgewählt:
sudo apt-get install $(grep -vE "^\s*#" my_dependencies | tr "\n" "\t")