You have two issues.
One is the UNIX/Linux script does not detect errors correctly.
Secondly the transaction log is filling up frequently.
First the script needs to have the standard output AND the error output go to your log file. When you use the > it is using file descriptor 1. When you want to capture error output you need to use 2> for file descriptor 2. So the command would look like the following.
isql > error.log 2> error.log
Better yet, use this.
isql 2>&1 > error.log
The previous command says to have file descriptor 2 go to file descriptor 1 which goes to a log file.
Now to detect errors, look for “Msg” which all Sybase errors have in front by using the grep command.
Secondly to resolve the transaction log space, you need to grow the size of the log which should be on its own device separate from data. Then you need to set the threshold to dump aka flush the completed transactions to a disk file automatically. You need to investigate the following commands to do this.
alter database, sp_helpthreshold, sp_addthreshold, sp_thresholdaction
Good SQL, good night.