因此,我需要编写一个Bourne-shell脚本,在这个脚本中,我的脚本必须与行一起工作,这个脚本只是与stdout相呼应--例如:
echo *something* | myscript.sh [parametres...] 这可能是一件基本的事情,可能是我在学习中错过的。我会包括我的尝试,但它们远未解决问题。不管怎么说,任何暗示都很感激。
发布于 2014-05-18 22:31:02
echo " foo bar " | {
# ...
IFS= read -r line
echo "$line"
}发布于 2014-05-19 02:52:48
管道左侧的标准输出连接到管道右侧的标准输入端。在您的示例中,echo的输出将成为myscript.sh的输入。
如果要将echo的整个输出存储到变量中,可以使用cat命令替换。
whole_input=$(cat)这将在输入的末尾剥离换行符。
如果您想一次读一行,也可以使用read内置的。请注意,普通read将行拆分为字段并使用反斜杠连续;若要读取一行而不引起其他并发症,请使用IFS= read -r:
IFS= read -r first_line
IFS= read -r second_linehttps://unix.stackexchange.com/questions/130866
复制相似问题