Мне кажется, проблема в том, что ваш внешний программный вызов изменяет / перенаправляет STDIN, таким образом, он читает какую-то фигню.
Установить автозапуск:
$|=1;
Если вам не нужен stdin / stderr при внешнем вызове, явно закройте его или перенаправьте в файл:
`sip.sh >&- 2>&- <&-`
или закройте только стандартный
`sih.sh <&-`
Если я прав, этот трюк работает только в последних ksh и bash. По крайней мере, под ksh: -)
С уважением,