我显然明白可以为内部字段分隔符变量添加值。例如:
$ IFS=blah
$ echo "$IFS"
blah
$
Run Code Online (Sandbox Code Playgroud)
我也明白这read -r line会将数据保存stdin到名为的变量line:
$ read -r line <<< blah
$ echo "$line"
blah
$
Run Code Online (Sandbox Code Playgroud)
但是,命令如何分配变量值?它是否首先存储来自stdinto 变量的数据line,然后赋予lineto 的值IFS?
我想观看一个文件,直到出现一些文字
我找到了这个答案:`tail -f`直到看到文字
但是当我在 ubuntu 上尝试时,它没有退出:
$ echo one > test.txt
$ echo two >> test.txt
$ echo three >> test.txt
$ echo four >> test.txt
$ cat test.txt | sed '/w/ q'
one
two
$
Run Code Online (Sandbox Code Playgroud)
按预期工作。但是当我尝试拖尾文件时
$ tail -f test.txt | sed '/w/ q'
one
two
Run Code Online (Sandbox Code Playgroud)
它永远不会退出。即使管道破裂,尾巴也不会停止。
有人知道tail退出时如何sed退出吗?