If you don't have find , you cannot do much better than what you did: list the levels. If you need to go down to arbitrary levels, you can do this with a recursive function (but look, recursion is complicated when all you have is global variables). Fortunately, with a known maximum depth, this is much easier.
There is little room for improvement: you'd better put double quotation marks around all variable substitutions, if there is a file name containing spaces or special characters. And you do not check if $exe and the executable file exist (it may be a template โฆ/*-*_test if this template does not match anything, or perhaps it may be an unexecutable file).
for shle in shle */shle */*/shle */*/*/shle; do for exe in "$shle"/*-*_test; do test -x "$exe" && "$exe" done done
If you do not even have test (if you have ksh, it is built-in, but if it is a stripped-down shell, it may be absent), you can leave with a more complex test to find out if the template has been expanded:
for shle in shle */shle */*/shle */*/*/shle; do for exe in "$shle"/*-*_test; do case "$exe" in */"*-*_test") :;; *) "$exe";; esac done done
(I am surprised that you do not have find , I thought that QNX comes with the full POSIX package, but I am not familiar with the QNX ecosystem, it may be a stripped down version of the OS for a small device.)
source share