¿Cómo puedo devolver un código de error específico en este momento en mi script TCL?

Tengo un script TCL expect que ejecuta un command scp para cargar un file de configuration a mi server DNS:

#!/usr/bin/expect -f set config "~/dnsmasq.conf" spawn /usr/bin/scp "$config" root@192.168.1.1:/etc/dnsmasq.conf expect { -re ".*yes.*no.*" { exp_send "yes\r" exp_continue } -re ".*password.*" { exp_send "$password\r" expect { -re ".*denied.*" { exit 7 } } } } 

Me gustaría devolver un código de error específico si no se puede encontrar la utilidad scp. Actualmente el script sale con un estado de 1. Si el script sale con un estado de 7, puedo manejar eso porque sé que es un error de acceso denegado. El error que aparece en el logging de Apache es:

 couldn't execute "/usr/bin/scp": no such file or directory while executing "spawn /usr/bin/scp "$config" root@192.168.1.1:/etc/dnsmasq.conf" 

¿Cómo puedo devolver un código de error de 5 o algo así en este momento?

La mejor manera de hacerlo sería comprobar si existe y es ejecutable:

 if { ! ([file exists /usr/bin/scp] && [file executable /usr/bin/scp])} { puts stderr "/usr/bin/scp does not exist or is not executable" exit 7 } spawn /usr/bin/scp ...