Se você tivesse erros de sintaxe nesse script, você os veria no stderr. ksh -n
é a coisa certa. Um exemplo:
$ cat script.ksh
touch tmpfile
for f in tmpfile # missing "do"
rm $f
done
$ ksh script.ksh
script.ksh: syntax error at line 3: 'rm' unexpected
$ ls -l tmp*
-rw-rw-r-- 1 glennj glennj 0 Jul 22 06:54 tmpfile
$ rm tmpfile
$ ksh -n script.ksh
script.ksh: syntax error at line 3: 'rm' unexpected
$ ls -l tmp*
ls: cannot access tmp*: No such file or directory
Então, o script foi analisado, mas não executado (o arquivo não foi criado)