Isso deve funcionar tanto no bash quanto no traço:
if [ ! -e targetfile ] || [ targetfile -nt sourcefile ]
then
echo "Already up to date"
exit 0
fi
No entanto, parece que você quer algo como make .
Em bash você pode até escrever make -f- <<<'targetfile: sourcefile ;' && exit 0 ,
mas a sintaxe <<< é bash específica, por isso você precisa de echo "targetfile: sourcefile ;" | make -f- && exit 0
ou simplesmente um Makefile real. :)