为什么'more'命令在主线程和后台线程上产生不同的输出? 请参阅以下示例:
#!/bin/sh
test_main()
{
more input.txt > output_main.txt
}
test_back()
{
more input.txt > output_back.txt
}
echo "abc" > input.txt
test_back &
test_main
wait
output_main.txt:
abc
output_back.txt:
::::::::::::::
input.txt
::::::::::::::
abc
答案 0 :(得分:1)
more
的标准输入必须连接到终端以确定页面的行数。在后台运行more
时,stdin不是终端,more
正在非交互模式下运行。
$ more input.txt </dev/tty
abc
$ more input.txt </dev/null
::::::::::::::
input.txt
::::::::::::::
abc