Dado:
$ cat test.ksh
doit() {
doi1() {
echo doi1 "$@"
}
doi2() {
echo doi2 "$@"
}
doi1 a
doi2 b
}
doit
functions doit
typeset -f doit
Por que eu recebo esta saída (doi2 () e o último} estão faltando):
$ perl -e '$a=join("",<>);system("ksh","-c",$a)' test.ksh
doi1 a
doi2 b
doit() {
doi1() {
echo doi1 "$@"
}
{
echo doi2 "$@"
}
doit() {
doi1() {
echo doi1 "$@"
}
{
echo doi2 "$@"
}
e não isso:
doi1 a
doi2 b
doit() {
doi1() {
echo doi1 "$@"
}
doi2() {
echo doi2 "$@"
}
doi1 a
doi2 b
}
doit() {
doi1() {
echo doi1 "$@"
}
doi2() {
echo doi2 "$@"
}
doi1 a
doi2 b
}
Existe alguma maneira que eu possa dizer ao ksh para deixar os nomes das funções intocados e, assim, me fornecer a definição completa da função?
$ ksh --version
version sh (AT&T Research) 93u+ 2012-08-01
Tags ksh