管道和参数之间的Bash差异

时间:2016-05-20 14:27:55

标签: bash stdin readline pipeline

我需要编写一个脚本,该脚本从stdin获取文件并运行它的行。

我的问题是我可以做那样的事情:

TheFile= /dev/stdin
while read line; do
{
 ....
}
done<"$(TheFile)"

或者我可以写--done<"$1"

或者在这种情况下,我将一个参数发送到函数的那一刻,该函数将被发送到while函数?

1 个答案:

答案 0 :(得分:1)

从哪里开始......你确定为此而努力吗?

你想用文件的行做什么?你最好不要像你的例子那样迭代,只需在它上面使用sedawkgrep就像这个例子一样:

sed -e 's/apple/banana/' $TheFile

这将输出$ TheFile的内容,替换所有出现的&#34; apple&#34;用&#34; banana&#34;。这是一个微不足道的例子,但你可以做得更多。

如果您确实要循环播放,请从示例中移除$()。此外,您的代码中=后面的空格也不会占用空间。