我找到了一个不错的实用程序脚本,它可以从所需的起始行有效地输出所需的行数。我将其命名为 mid.bak,它基于此处的帖子>> http://www.fastechws.com/tricks/unix/head_tail_mid_files.php
用法:mid.bak startline numlines 文件名
$ cat mid.bak
#!/bin/sh
echo "Positional parameter count: $#"
tail -n +$1 $3 | head -n $2
echo "Parameter three is: $3"
案例一:按照上面概述的正常用法,找到位置参数“$3”。
$ mid.bak 3 2 file.txt
Positional parameter count: 3
This line 3 in file.txt
This line 4 in file.txt
Parameter three is: file.txt
案例 II 和 III:“$3”神秘地不存在。
$ mid.bak 3 2 < file.txt
Positional parameter count: 2
This line 3 in file.txt
This line 4 in file.txt
Parameter three is:
$ cat file.txt | mid.bak 3 2
Positional parameter count: 2
This line 3 in file.txt
This line 4 in file.txt
Parameter three is:
我的问题:上面的位置参数 $3 可通过正常的 $1, $2 .. 用于案例 I 的脚本引用。那么为什么它不包含在计数“$#”中并且对于案例 II 和 III 没有回显?