Estoy siguiendo las instrucciones de instalación de este artículo , pero recibo un error de bad substitution error de zsh al ejecutar este comando:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc) echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null¿Qué se supone que debo cambiar por zsh?
${DISTRIB_ID,,} es una expansión de parámetros específica de Bash para poner en minúsculas el valor de la variable.
https://askubuntu.com/a/383360/25077 sugiere ${(L)DISTRIB_ID} como operación correspondiente en Zsh.
Pero no hay una razón real para que esto use construcciones específicas para cualquiera de los shells; la operación también es fácil de realizar de forma portátil en POSIX sh (aunque a costa de un proceso externo).
Por lo que vale, a menos que haya otras razones por las que necesite hacerlo, las declaraciones de export aquí también son innecesarias. Consulte también Corrección de mayúsculas y minúsculas de Bash y shell script
distrib_id=$(lsb_release -si | tr AZ az) distrib_codename=$(lsb_release -sc) echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/$distrib_id $distrib_codename stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/nullComo dice el comentario en la publicación original, ${DISTRIB_ID,,} se usa en bash para expandir el parámetro en minúsculas. Lo mismo en zsh lo hace ${DISTRIB_ID:l} .
Entonces, todo el comando de trabajo en zsh es:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc) echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID:l} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null