I am learning nanomsg with its example. But the command line below made me confused.
./pipeline node0 ipc:///tmp/pipeline.ipc & node0=$! && sleep 1
I can understand that ./pipeline refers to the executable file and node0 together with ipc:///tmp/pipeline.ipc are the parameters passed to the program. The & symbol means the command is executed in the background. According to this answer, if node0=$! executed successfully then the terminal will sleep for 1 second. Here comes the problem:
What does node0=$! mean? Especially what does $ and ! mean here?