Ik wil graag
- een functie definiëren
- binnen die functie een global variable kunnen setten
- deze functie aanroepen binnen een statement met backquotes
Onderstaade functie getFruit () zelf werkt wel. Als je hem los aanroept dan wordt bonusFruit netjes geset. Echter als je getFruit () aanroept binnen de backquotes, gaat het mis. De if-statements worden netjes afgehandeld, alleen bonusFruit wordt niet geset.
Beschouw onderstaande dummy script:
Ik zou verwachten:
Maar ik krijg:
Ik heb de hele ochtend gezocht (google/tweakers), maar kan helaas niets kunnen vinden wat me dichter bij een antwoord brengt.
- een functie definiëren
- binnen die functie een global variable kunnen setten
- deze functie aanroepen binnen een statement met backquotes
Onderstaade functie getFruit () zelf werkt wel. Als je hem los aanroept dan wordt bonusFruit netjes geset. Echter als je getFruit () aanroept binnen de backquotes, gaat het mis. De if-statements worden netjes afgehandeld, alleen bonusFruit wordt niet geset.
Beschouw onderstaande dummy script:
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #!/bin/bash function getFruit () { if [[ $1 -eq 1 ]]; then echo "apple"; fi; if [[ $1 -eq 2 ]]; then echo "orange"; fi; bonusFruit="banana"; } for i in 1 2; do out="$out `getFruit $i`"; done; out="$out $bonusFruit"; echo $out; |
Ik zou verwachten:
Bash:
1
2
| $ ./example.sh apple orange banana |
Maar ik krijg:
Bash:
1
2
| $ ./example.sh apple orange |
Ik heb de hele ochtend gezocht (google/tweakers), maar kan helaas niets kunnen vinden wat me dichter bij een antwoord brengt.