Con la noticia de que Catalina se predeterminado zsh en lugar de bash, me estoy encontrando un montón de resultados de decirme sobre el interruptor, y que puede causar problemas con los scripts de shell, pero no estoy lo suficientemente familiarizado con zsh saber cuáles son esos problemas podría ser. Mis scripts de shell realmente no es tan complicado, pero sólo la he usado bash en macOS y Linux - cero experiencia con zsh. ¿Alguien puede proporcionar una simple comparación práctica, o de determinados obstáculos que se necesita saber, para que yo pueda empezar a trabajar para estar listo para el nuevo shell cuando Catalina se libera?
Respuestas
¿Demasiados anuncios?Cambiar su shell de ahora y de prueba - no hay necesidad de esperar.
chsh -s /bin/zsh
- Todas las secuencias de comandos que dependen
bash
sintaxis va a encontrar y llamar a bash. - el mismo bash de Mojave es el envío de Catalina y migran a los usuarios a mantener su viejo caparazón.
También, diría que el 95% de los usuarios de macOS no utilice una línea de comandos y de aquellos que lo hacen, el otro 95% no tienes que cambiar nada significativo o en todos. (Yo apuesto a que es más como el 10% de ese 1% que saber conchas existe necesidad de hacer otra cosa que puerto un par de líneas en sus .punto archivos)
Su pronta va a cambiar y si ha cambiado su mensaje en bash
, la manera de cambiarlo en zsh
es no más y no menos documentado de bash.
El más reciente conchas de fallar jamás a la tierra si se rompía los principales elementos o provocó un doloroso periodo de adaptación. Si quieres un cambio más fundamental y realmente quieren un shell que usted necesita para pensar acerca de y requiere entrenamiento y la intención de adoptar - trate de pescado.
Mis scripts de shell realmente no es tan complicado
Hacer tus scripts de shell han shebang líneas (comienzan con
#! /bin/bash
o similar)? Si no, usted podría haber sido sin querer el uso de una característica de bash, donde se ejecuta secuencias de comandos sin necesidad de un proceso usando bash. Otros shells, como dash o zsh, deja que el sistema operativo, el cual sería normalmente uso/bin/sh
lugar./bin/sh
en macOS es, y probablemente seguirá siendo, una copia de/bin/bash
, pero la ejecución de bash con el nombresh
de las causas que tienen un comportamiento diferente. Los detalles son el manual de Bash, 6.11 Bash POSIX modo. Algunos puntos:
- Bash se asegura de que el
POSIXLY_CORRECT
variable está definida.Esta variable de entorno puede afectar el comportamiento de un número de otras herramientas, especialmente si usted tiene herramientas de GNU instalado.
- El proceso de sustitución no está disponible.
Proceso de sustitución de la
<(...)
o>(...)
de sintaxis.
- El
.
ysource
builtins no busca en el directorio actual para el argumento de nombre de archivo si no es encontrado por la búsqueda de RUTA.Así que si su guión tenía
. foo
esperando que la fuente de un archivo de nombrefoo
en el directorio actual, que no funcionan. Usted debe hacer. ./foo
, en su lugar.Como se puede adivinar a partir de los números, hay un montón de pequeñas diferencias en el comportamiento de bash en POSIX modo. Mejor uso de una shebang si te refieres a usar bash para las secuencias de comandos.