如何捕获通过管道传输到shell脚本的数据?

时间:2016-01-29 15:37:47

标签: bash shell

如果我调用这样的脚本

echo "some text" | myscript

我如何捕获"某些文字"在脚本中使用。在这种情况下,可以将其分配给变量。

我一直在Google上搜索,但我认为我没有使用正确的术语来查找我正在寻找的内容。

1 个答案:

答案 0 :(得分:3)

上一个命令(在您的情况下为echo)中的所有数据都将在管道中下一个命令的STDIN上可用。只需使用read内置来捕获它。这是一种使用`read:

捕获单行的方法
echo "some text" | { IFS= read -r line; echo "line=[$line]"; }
line=[some text]

或者您甚至可以使用默认的REPLY变量:

echo "some text" | { IFS= read -r; echo "line=[$REPLY]"; }
line=[some text]