Welche Änderungen wurden vorgenommen, um Lion zu verprügeln?

1

Ich arbeite an einigen bash Shell-Skript für ein lokales Anmeldeskript, das unter Leopard und Snow Leopard einwandfrei funktioniert, unter Lion jedoch nicht funktioniert. Ich war neugierig, ob es einen Ort gibt, in dem die Unterschiede aufgeführt sind bash auf Lion?

John
quelle
5
Dies ist eine sehr, sehr vage Frage. Am besten postest du das gesamte Skript oder einen Teil davon und erklärst, was du zu tun versuchst.
macaco
Ich glaube nicht, dass es einer Abwahl bedurfte. Sicherlich gibt es eine Möglichkeit zu erkennen, welche Unterschiede zwischen den Versionen in BASH bestehen.
John
Ich habe versucht, die folgende Variable in meinem Bash-Skript zu verwenden: username = "$ (whoami)"
John
1
@ John Ich habe es versucht u="$(whoami)"; echo $u am 10.6 und 10.7, mit dem gleichen Ergebnis. Veröffentlichen Sie die Skriptquelle, so erhalten Sie angemessene Antworten. Um Ihre Hauptfrage zu beantworten, haben die neuesten System-Upgrades für 10.7 und 10.6 sowieso die gleiche Version von bash, d. H. 3.2.48(1)-release
ocodo

Antworten:

5

Innerhalb von Bash der Befehl echo $BASH_VERSION zeigt die Version von bash. Sie können dann nachsehen, was sich in der Datei geändert hat Änderungsprotokoll Datei, die bashs Fall ist, heißt CHANGES. (Es gibt ein vollständigeres Changelog in den Quellen, aber es ist hauptsächlich für Leute von Interesse, die bash schreiben und pflegen.)

Wenn Ihre Maschinen auf dem neuesten Stand sind, Sie werden die gleiche Version ausführen . Stellen Sie sicher, dass auch alle im Skript verwendeten externen Programme auf dem neuesten Stand sind: Das Skript verhält sich möglicherweise anders, da eines dieser Programme eine andere Ausgabe erzeugt.

Sie können beobachten, was Ihr Skript genauer macht, indem Sie es ausführen bash -x /path/to/script. Das -x Diese Option bewirkt, dass die Bash für jeden ausgeführten Befehl eine Ablaufverfolgung ausgibt. Sie können auch setzen set -x in einem Skript, um die Ablaufverfolgung zu aktivieren, und set +x um es auszuschalten.

Gilles
quelle
1
bash --version erhalten Sie das gleiche Ergebnis wie echo $BASH_VERSION btw. +1 für bash -x script
ocodo
7

Angenommen, eine SnowLeopard- oder Lion-Installation mit den neuesten Software-Updates hat dieselbe Version von Bash. 3.2.48(1)-release.

Auf SnowLeopard haben Sie möglicherweise in einigen Fällen eine 32-Bit-Kompilierung, auf Lion dagegen (standardmäßig) 64-Bit.

Der Befehl username="$(whoami)" ist äußerst Es ist unwahrscheinlich, dass die Ausgabe auf Bash jemals geändert wird, da dies den schnellen, gehirnfressenden Zorn einer unendlichen Anzahl von ausgehungerten Zombiesysadmin-Typen zur Folge hätte.

(Übrigens sind Sysadmins trotz des gelegentlichen gegenteiligen Auftretens so gut wie nie untot. Die Beschreibung wurde wegen dramatischer Auswirkungen hinzugefügt, und es war kein Verstoß gegen Sysadmins beabsichtigt. Ich entschuldige mich von Herzen bei allen untoten Sysadmins und ihren Familien und Ich fordere sie auf, sich sofort eine Schrotflinte zu schnappen und die Schlafzimmertür zu verriegeln.

ocodo
quelle