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 $cores
bereits vorhanden ist, .bashrc
damit 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 sysctl
oder ein grep over, /proc/cpuinfo
um 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 $cores
die Variable gesetzt ist oder nicht. Das heißt, wenn $cores null ist, wird „nicht gesetzt“ angezeigt, andernfalls „gesetzt“. Tatsächlich .bashrc
wird 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 . .bashrc
am Anfang Ihrer .bash_login
Datei platzieren, um sicherzustellen, dass .bashrc
es sowohl für interaktive Shells mit als auch ohne Anmeldung als Quelle verwendet wird.