Preguntas etiquetadas con variable-substitution

25
¿Qué significa $ {PATH: +: $ {PATH}}?

Recientemente noté lo siguiente en mi perfil de cygwin, más precisamente: /usr/local/bin:/usr/bin${PATH:+:${PATH}} Qué significa eso? ¿Por qué no es solo $ PATH? ¿Es esto un 'si existe $ PATH entonces agregue: $ PATH'? Mi propósito es intercambiar el orden y poner las rutas de Cygwin detrás de la...

23
Sustitución doble y triple en bash y zsh

Seguimiento a la parte de fondo en esta pregunta . En bashpuedo usar ${!FOO}para doble sustitución, en zsh ${(P)FOO}. En ambos, la vieja escuela (hack-y) eval \$$FOOfunciona. Entonces, lo más inteligente y lógico para mí sería la ${${FOO}}, ${${${FOO}}}…sustitución doble / triple / n. ¿Por qué...

13
$ {! FOO} y zsh

${!FOO}realiza una doble sustitución en bash, lo que significa que toma el valor (cadena) de FOO y lo usa como un nombre de variable. zshno es compatible con esta función. ¿Hay alguna manera de hacer que esto funcione igual en bashy zsh? Antecedentes: Tengo una lista de variables de entorno,...

12
Nombre de variable concatenado de desreferencia

Puedo hacer esto, pero requiere hacer una cadena de la variable y luego desreferenciarla. ¿Hay alguna forma de acortarlo a una declaración más simple? #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS );...

9
Manipulación de cadenas de bash

He leído algunas otras preguntas sobre manipulación de cadenas de bash de tuberías, pero parecen ser aplicaciones especializadas. Básicamente, ¿hay alguna manera de hacer lo siguiente más simple? en vez de $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD algo...