A versão do OS X de date
usa a opção -f
para analisar uma data / hora formatada:
date -j -f '%Y%m%d' "$1" +'%Y%m%d'
A opção -j
faz com que apenas imprima a hora, não tente definir o relógio do sistema. Então o roteiro completo seria:
#!/bin/bash
echo "$1";
startd=$(date -j -f '%Y%m%d' "$1" +'%Y%m%d');
echo "$startd";
Aqui está uma transcrição:
$ ./testdate.sh 20151010
20151010
20151010