7 votos

diferencia ZSH y BASH para $RANDOM?

Acabo de cambiar de Ubuntu a MacOS (por motivos de trabajo). Y quería transferir mis alias de bash a zsh, pero no están funcionando completamente.

alias HPC1='ssh -l [username] [server1]'
alias HPC2='ssh -l [username] [server2]'
HPC[0]="HPC1"
HPC[1]="HPC2"
alias HPC='eval "${HPC[$RANDOM % 2]}"'

HPC1 se conecta al servidor1 y HPC2 se conecta al servidor2. HPC debería conectarse al servidor1 o al servidor2 aleatoriamente. Funciona dentro de bash. En MacOS (zsh) sólo los alias HPC1 y HPC2 trabajo, pero no HPC . ¿La sintaxis es diferente allí?

Gracias por ayudarme :).

9voto

bash inicia los índices del array en 0, zsh en 1.

Una forma un poco extraña de superar esto es

server_list=(HPC1 HPC2)
alias HPC='ssh -l username ${server_list[(($RANDOM % 2 - 2))]}'

Esto pone los nombres de los servidores en un array de shell, y luego escoge al azar el primero o el segundo del final de la lista ( $RANDOM % 2 - 2 es -1 o -2).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X