Hallo, ik probeer een scriptje te maken dat tijdens het draaien een functie kan bij laden die vervolgens elders in het script aangeroepen kan worden. Ik weet niet of dit mogelijk is.
Simpel voorbeeld dat werkt: de content van een variabele letterlijk uitvoeren als shell commando:
Maar wat ik zou willen is een complete functie laden, dus in het kort:
dit resulteert in de error: "bash: function: command not found."
Ongeveer hetzelfde gebeurt bij deze pogingen:
X="hoi () { echo "hoi"; } # kale functiedeclaratie zonder 'function' keyword. Is ook correct (bash: hoi: command not found)
X="hoi () { echo \"hoi\"} # interne quotes escapen.
Werkt ook niet. Daar ligt het niet aan, het probleem zit hem ergens in het laden in "progam space", voor zover dat bij een shell script van toepassing is.
Heeft iemand enig idee of/hoe dit te doen is? Ik snap dat je hetzelfde kunt realiseren door tijdens de run gewoon scriptcode naar andere bestanden te schrijven en die te 'sourcen', maar ik wil er even vanuit gaan dat ik geen schrijfpermissies heb op een schijfstation van het systeem.
Simpel voorbeeld dat werkt: de content van een variabele letterlijk uitvoeren als shell commando:
code:
1
2
3
4
| #!/bin/bash X="echo hoi" $X |
Maar wat ik zou willen is een complete functie laden, dus in het kort:
code:
1
2
3
4
| #!/bin/bash X="function hoi () { echo "hoi"; }" # string met correcte bash-syntax voor een functie van 1 regel $X |
dit resulteert in de error: "bash: function: command not found."
Ongeveer hetzelfde gebeurt bij deze pogingen:
X="hoi () { echo "hoi"; } # kale functiedeclaratie zonder 'function' keyword. Is ook correct (bash: hoi: command not found)
X="hoi () { echo \"hoi\"} # interne quotes escapen.
Werkt ook niet. Daar ligt het niet aan, het probleem zit hem ergens in het laden in "progam space", voor zover dat bij een shell script van toepassing is.
Heeft iemand enig idee of/hoe dit te doen is? Ik snap dat je hetzelfde kunt realiseren door tijdens de run gewoon scriptcode naar andere bestanden te schrijven en die te 'sourcen', maar ik wil er even vanuit gaan dat ik geen schrijfpermissies heb op een schijfstation van het systeem.
[ Voor 9% gewijzigd door blorf op 21-01-2012 11:37 ]
You are in a maze of little twisting passages, all different.