I bash kan man unnslippe argumenter som inneholder mellomrom.
foo a string
Dette fungerer også for argumenter til en kommando eller funksjon:
bar() {
foo $@
}
bar a string
Så langt så bra, men hva om jeg ønsker å manipulere argumentene før du ringer foo
?
Dette fungerer ikke:
bar() {
for arg in $@
do
args=$args \prefix $arg\
done
# Everything looks good ...
echo $args
# ... but it isn't.
foo $args
# foo $args would just be silly
}
bar a b c
Så hvordan kan du bygge argumentlister når argumentene inneholde mellomrom?