Estoy trabajando en algunas bash
secuencias de comandos de shell para una secuencia de comandos de inicio de sesión local y funciona bien en Leopard y Snow Leopard, pero falla en Lion. Tenía curiosidad por saber si había un lugar que enumerara las diferencias en bash
Lion.
Dentro de bash, el comando echo $BASH_VERSION
muestra la versión de bash. Luego puede buscar qué cambió en el archivo de registro de cambios , que en el caso de bash se llama CHANGES
. (Hay un registro de cambios más completo en las fuentes, pero es principalmente de interés para las personas que escriben y mantienen bash).
Si sus máquinas están actualizadas, ejecutarán la misma versión . Asegúrese de que todos los programas externos utilizados en el script también estén actualizados: el script puede comportarse de manera diferente porque uno de estos programas produce un resultado diferente.
Puede observar más de cerca lo que está haciendo su secuencia de comandos ejecutando bash -x /path/to/script
. La -x
opción hace que bash imprima un rastro para cada comando que ejecuta. También puede poner set -x
una secuencia de comandos para activar y set +x
desactivar el rastreo.
bash --version
le dará el mismo resultado que echo $BASH_VERSION
por cierto. +1 parabash -x script
Suponiendo que la instalación de SnowLeopard o Lion tenga las últimas actualizaciones de software, la versión de Bash es la misma. 3.2.48(1)-release
.
En SnowLeopard puede tener una compilación de 32 bits en algunos casos, mientras que en Lion es (por defecto) de 64 bits.
username="$(whoami)"
Es extremadamente improbable que el comando cambie alguna vez su salida en bash, ya que hacerlo incurriría en la ira devoradora de cerebros de un número infinito de tipos de administradores de sistemas zombis voraces.
(Por cierto, los administradores de sistemas casi nunca son muertos vivientes, a pesar de la apariencia ocasional de lo contrario. La descripción se agregó para lograr un efecto dramático y no se pretendía ofender a los administradores de sistemas. Ofrezco mis más sinceras disculpas a los administradores de sistemas no muertos reales y a sus familias, y Los insto a que tomen una escopeta de inmediato y bloqueen la puerta del dormitorio, toque dos veces para asegurarse).
macaco
John
John
ocodó
u="$(whoami)"; echo $u
en 10.6 y 10.7, con el mismo resultado. Publique la fuente del script, de esa manera obtendrá respuestas decentes. Además, para abordar su pregunta principal, las últimas actualizaciones del sistema para 10.7 y 10.6 tendrán la misma versión de bash de todos modos, es decir.3.2.48(1)-release