观察当我一个接一个地发出两个命令时会发生什么,而不是在一行上,用分号分隔:
制作管道并启动电影:
$ mkfifo pipe1
$ tail -f /dev/null > pipe1 &
$ cat pipe1 | omxplayer /path/to/video.mp4
退出试验一:
$ echo -n q > pipe1; # Exits movie, but omxplayer hangs
$ echo > pipe1; # Completes exit process
退出试验 2:
$ echo -n q > pipe1; echo > pipe1 # Does nothing
退出试验 3:
$ echo -n q > pipe1; sleep 1; echo > pipe1 # Works just like trial 1
有人可以解释为什么试验 2 什么都不做。另外,有没有更好的方法通过不需要两个echo
语句的命名管道发出退出命令?