我写了一个简短的超级简单脚本(来自考试的问题),它作为参数log.txt
文件(只是一个包含大量日期的文件),并创建一个包含一些排序值的temp.txt
- - 我有这个代码行:
cat $1 | date_isolate | sort | uniq | create_relevant $1
$1
应该是log.txt
参数。
问题:我的函数create_relevant
- 它通过管道得到标准输入,我希望它得到另一个参数log.txt
- 我如何标记函数中的每个参数?它是管道的$1
和$2
的{{1}}还是log.txt
的{{1}},我是通过$1
从管道读取的?
答案 0 :(得分:0)
由于create_relevant
从 STDIN 获取输入,因此最一致的接口是将其输出发送到 STDOUT 。所以整个管道看起来像:
date_isolate < "$1" | sort -u | create_relevant > temp.txt
或者,使用这个懒惰版本避免temp.txt
:
date_isolate < "$1" | sort -u | create_relevant | sponge "$1"
(sponge
是一个实用程序,它可以阻止&#34; $ 1 &#34;被覆盖直到它应该被覆盖。)