Você não precisa do seu eco nem parênteses aqui. A verificação de $1
foi definida também pode ser relevante:
#!/bin/sh
if test "$#" -eq 0; then
echo missing argument
exit 1
fi >&2
if test "$DEBUG"; then
set -x
tcprobe -i "$1"
echo returned $?
set +x
else
tcprobe -i "$1" >frameInfo 2>&1
fi
exit 0
use DEBUG=toto ./your/script yourFileArgument
, para ativar os depuradores.