Welche Änderungen wurden an Bash in Lion vorgenommen?

Ich arbeite an einigen bashShell-Skripten für ein lokales Anmeldeskript und es funktioniert gut auf Leopard und Snow Leopard, schlägt aber auf Lion fehl. Ich war neugierig, ob es einen Ort gibt, der die Unterschiede zu bashLion auflistet?

Das ist eine sehr, sehr vage Frage. Am besten postest du das ganze oder einen Teil des Skripts und erklärst, was du zu tun versuchst.
Ich glaube nicht, dass es einer Gegenstimme bedurfte. Sicherlich gibt es eine Möglichkeit festzustellen, welche Unterschiede in BASH zwischen den Versionen bestehen.
Ich habe versucht, die folgende Variable in meinem Bash-Skript zu verwenden: username="$(whoami)"
@John Ich habe es u="$(whoami)"; echo $umit 10.6 und 10.7 versucht, mit dem gleichen Ergebnis. Posten Sie die Skriptquelle, auf diese Weise erhalten Sie anständige Antworten. Um Ihre Hauptfrage zu beantworten, werden die neuesten System-Upgrades für 10.7 und 10.6 sowieso dieselbe Version von Bash haben, dh.3.2.48(1)-release

Antworten (2)

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

Wenn Ihre Computer auf dem neuesten Stand sind, wird auf ihnen dieselbe Version ausgeführt . Stellen Sie sicher, dass alle im Skript verwendeten externen Programme ebenfalls auf dem neuesten Stand sind: Das Skript kann sich anders verhalten, da eines dieser Programme eine andere Ausgabe erzeugt.

Sie können genauer beobachten, was Ihr Skript tut, indem Sie ausführen bash -x /path/to/script. Die -xOption veranlasst bash, für jeden ausgeführten Befehl eine Ablaufverfolgung auszugeben. Sie können auch set -xein Skript einfügen, um die Ablaufverfolgung ein- und set +xauszuschalten.

bash --versionwird Ihnen das gleiche Ergebnis wie echo $BASH_VERSIONbtw geben. +1 fürbash -x script

Unter der Annahme einer SnowLeopard- oder Lion-Installation mit den neuesten Software-Updates ist die Version von Bash dieselbe. 3.2.48(1)-release.

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

username="$(whoami)"Es ist äußerst unwahrscheinlich, dass der Befehl jemals seine Ausgabe auf Bash ändert, da dies den sich schnell bewegenden, Gehirn verschlingenden Zorn einer unendlichen Anzahl von ausgehungerten Zombie-Systemadministratortypen hervorrufen würde.

(Übrigens sind Sysadmins fast nie untot, trotz des gelegentlichen Anscheins des Gegenteils. Die Beschreibung wurde aus dramatischen Gründen hinzugefügt, und es war nicht beabsichtigt, Sysadmins zu beleidigen. Ich entschuldige mich aufrichtig bei allen tatsächlich untoten Sysadmins und ihren Familien und Ich fordere sie auf, sich sofort eine Schrotflinte zu schnappen und die Schlafzimmertür zu verbarrikadieren, doppeltippen, um sicherzugehen.)