в Bash test - операция выполняется для одного файла.
Я предполагаю, что в Ksh88 test -a работает для одного файла, но не жалуется, потому что другие тестовые слова являются неопределенным условием для -a.
вы хотите что-то вроде
for K in /etc/rc2.d/K* ; do test -a $K && echo heck-yea ; done
Могу сказать, что ksh93 работает так же, как bash в этом отношении.
К сожалению, я думаю, что код написан плохо, мое мнение и, вероятно, плохое мнение, поскольку основной причиной проблемы является встроенный тест ksh88, позволяющий использовать неаккуратный код.