Domande taggate «variable-substitution»



2
Cosa significa $ {PATH: +: $ {PATH}}?
Di recente ho notato quanto segue nel mio profilo cygwin, più precisamente: /usr/local/bin:/usr/bin${PATH:+:${PATH}} Cosa significa? Perché non è solo $ PATH? È un 'se $ PATH esiste quindi aggiungi: $ PATH'? Il mio scopo è scambiare l'ordine e mettere i percorsi cygwin dietro il percorso di Windows. In passato avrei …


7
Doppia e tripla sostituzione in bash e zsh
Seguito dato alla parte di fondo di questa domanda . In bashposso usare ${!FOO}per la doppia sostituzione, in zsh ${(P)FOO}. In entrambi, la vecchia scuola (hack-y) eval \$$FOOfunziona. Quindi, la cosa più intelligente e più logica per me sarebbe la ${${FOO}}, ${${${FOO}}}…sostituzione doppia / tripla / n. Perché questo non …



3
Bash supporta i riferimenti posteriori nell'espansione dei parametri?
Ho una variabile chiamata descrche può contenere una stringa Blah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Fooecc voglio ottenere il -> r1-ae0-2, -> s7-Gi0-0-1:1-USparte dalla stringa. Al momento lo uso descr=$(grep -oP '\->\s*\S+' <<< "$descr"per questo. C'è un modo migliore per farlo? È anche possibile farlo con l'espansione dei …



4
$ {! FOO} e zsh
${!FOO}esegue una doppia sostituzione in bash, nel senso che prende il valore (stringa) di FOO e lo usa come nome di variabile. zshnon supporta questa funzione. C'è un modo per rendere questo lavoro uguale in bashe zsh? Sfondo: Ho un elenco di variabili d'ambiente, come PATH MAIL EDITOR e voglio …


1
Vedi l'espansione delle variabili Bash per il debug?
Sono disponibili strumenti / trucchi per espandere le variabili in modo da facilitare la lettura del codice bash? Ad esempio, convertirà quanto segue: DIR=/var/tmp FILE=${DIR}/file SCRIPT_ROOT=/opt/root TOOL=${SCRIPT_ROOT}/tool.sh ${TOOL} ${FILE} per: DIR=/var/tmp FILE=/var/tmp/file SCRIPT_ROOT=/opt/root TOOL=/opt/root/tool.sh /opt/root/tool.sh /var/tmp/file Sto convertendo il codice BASH in Python e leggendo la sintassi BASH è noioso.

3
Dereference nome variabile concatenato
Posso farlo, ma richiede di creare una stringa della variabile e quindi di dereferenziarla. C'è un modo per accorciarlo a una dichiarazione più semplice? #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done Ho provato molte …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.