7 votes

différence ZSH et BASH pour $RANDOM ?

Je viens de passer d'Ubuntu à MacOS (pour des raisons professionnelles). Et je voulais transférer mes alias bash vers zsh, mais ils ne fonctionnent pas complètement.

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 connecte au serveur 1 et HPC2 se connecte au serveur 2. HPC devrait se connecter au serveur 1 ou au serveur 2 de manière aléatoire. Cela fonctionne avec bash. Sous MacOS (zsh), seuls les alias HPC1 y HPC2 travail, mais pas HPC . La syntaxe est-elle différente ?

Merci de m'avoir aidé :).

9voto

nohillside Points 82672

bash commence les index du tableau à 0, zsh à 1.

Une façon un peu étrange de résoudre ce problème est la suivante

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

Cette opération place les noms des serveurs dans un tableau shell, puis choisit au hasard le premier ou le second à la fin de la liste ( $RANDOM % 2 - 2 est soit -1, soit -2).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X