Please start your script in cron like this: "sh gps.sh". This could solve your issue.
[nemo@Dinghy ~]$ ps ax | grep gps 457 ? Ss 0:00 /bin/sh ./gpsconupload 458 ? S 0:00 /bin/sh ./gpsconupload 459 ? S 0:00 gpscon --script runs=3 1221 ? Ss 0:00 /bin/sh ./gpsconupload 1222 ? S 0:00 /bin/sh ./gpsconupload 1224 ? S 0:00 gpscon --script runs=3 1306 pts/0 S+ 0:00 grep gps [nemo@Dinghy ~]$
#!/bin/sh STR=`gpscon --script runs=3 | tail -n 1` LAT=`echo $STR | cut -d " " -f 2 | cut -d ";" -f 1` LON=`echo $STR | cut -d " " -f 4 | cut -d ";" -f 1` ALT=`echo $STR | cut -d " " -f 6` STR={\"gid\":\"`hostname`\",\"time\":`date +%s`,\"lon\":$LON,\"lat\":$LAT if [ $ALT != "nan" ]; then STR=$STR,\"alt\":$ALT fi STR=$STR} echo $STR >> ~/gpsconlog.txt
#!/bin/sh sh ./gpsconupload.do
[nemo@Dinghy ~]$ ps ax | grep gps 3871 ? Ss 0:00 sh ./gpsconupload 3872 ? S 0:00 sh ./gpsconupload.do 3873 ? S 0:00 sh ./gpsconupload.do 3874 ? S 0:00 gpscon --script runs=3 4076 ? Ss 0:00 sh ./gpsconupload 4077 ? S 0:00 sh ./gpsconupload.do 4078 ? S 0:00 sh ./gpsconupload.do 4079 ? S 0:00 gpscon --script runs=3 4088 pts/0 S+ 0:00 grep gps [nemo@Dinghy ~]$