Überprüfen, ob eine Zeile in der Datei vorhanden ist

Überprüfen, ob eine Zeile in der Datei vorhanden ist

Ich habe ein Bash-Skript, das einen Benutzer nach der Anzahl der CPU-Kerne fragt und diese in einer Variable namens speichert $cores. Jetzt möchte ich diese Variable zu hinzufügen .bashrc, also frage ich den Benutzer, wie viele CPU-Kerne er hat und ob er diesen Wert in speichern möchte .bashrc.

Nun die Frage: Wie kann ich prüfen, ob es $coresbereits vorhanden ist, .bashrcdamit das Skript den Benutzer nicht erneut fragt?

Antwort1

Anstatt den Benutzer nach der Anzahl der Kerne des Systems zu fragen, warum fragen Sie nicht einfach das System? Das ist besser, weil dabei kein Schreiben in eine benutzereigene Datei erforderlich ist. Sehen Sie sich etwas wieDas, das 'getconf' verwendet, um die Variable NPROCESSORS_CONF anzufordern. Oder für andere Systeme, die vorgestellten IdeenHierkann hilfreich sein – verwenden Sie sysctloder ein grep over, /proc/cpuinfoum die Anzahl der Kerne zu ermitteln.

Antwort2

Versuche dies:

'awk /\$core/ { print }'

Antwort3

Sie können mit folgendem Befehl überprüfen, ob eine Variable in Bash festgelegt ist:

if [[ -z "$cores" ]]
then
    echo "not set"
else
    echo "set"
fi

Dadurch wird überprüft, ob $coresdie Variable gesetzt ist oder nicht. Das heißt, wenn $cores null ist, wird „nicht gesetzt“ angezeigt, andernfalls „gesetzt“. Tatsächlich .bashrcwird es für nicht interaktive Shells, wie sie beispielsweise beim Ausführen eines Shell-Skripts gestartet werden, nicht automatisch als Quelle verwendet. Sie würden es also . .bashrcam Anfang Ihrer .bash_loginDatei platzieren, um sicherzustellen, dass .bashrces sowohl für interaktive Shells mit als auch ohne Anmeldung als Quelle verwendet wird.

verwandte Informationen