JSON=\''{"hostname": "localhost", "outdir": "'"$OUTDIR"'", "port": 20400, "size": 100000}'\'
Isso é sair das aspas simples para a expansão de $OUTDIR . Colocamos essa expansão dentro de aspas duplas para uma boa medida, embora para uma atribuição de variável escalar não seja estritamente necessário.
Quando você está passando a variável $JSON para echo , as cotações são necessárias para desabilitar o operador split + glob. Também é melhor evitar echo para dados arbitrários:
printf '%s\n' "$JSON"