检查golang格式以进行持续集成

I am trying to write a makefile command that will output an error if the golang code is not correctly formatted. This is for a CI step. I am struggling with how to get it working in the make file. This solution works on the bash commandline:

! gofmt -l . 2>&1 | read

But copying this into the makefile:

ci-format:
    @echo "$(OK_COLOR)==> Checking formatting$(NO_COLOR)"
    @go fmt ./...
    @! gofmt -l . 2>&1 | read

I get the following error:

/bin/sh: 1: read: arg count

The command I use for precisely that purpose is:

diff -u <(echo -n) <(gofmt -d ./)

See, for example, the .travis.yml files on one of my projects.