我想写一个bash
脚本,用piped
输入一些文字。
基于谷歌搜索并尝试从示例中挑选。 这是我到目前为止所做的,但是不起作用:
#!/bin/sh
if readlink /proc/$$/fd/0 | grep -q "^pipe:"; then
echo "{ "template":{"name":"contact sheet template","root":"root","parameters": ["pages"]},"pages":"
cat
echo "}"
fi
我从另一个程序收到一个JSON列表作为piped
输入,我希望在我pipe
结果发送到下一个程序之前和之后输出上述文本。
program_1 | wrapper.sh | program_2 > outputfile
但它没有输出任何东西。
拥有bash
专业知识的人能指出我正确的方向吗?
答案 0 :(得分:2)
就我个人而言,我会用这种方式搜索:
<强> myscript.sh 强>
echo 'BEFORE' $(cat) 'AFTER'
答案 1 :(得分:2)
您的意思是您的脚本正在读取管道的标准输入,例如
$ other-process | my-script
然后,脚本中的命令将继承管道中的标准输入
#!/bin/sh
# Output preamble
cat <<EOF
{ "template":{"name":"contact sheet template","root":"root","parameters": ["pages"]},"pages":
EOF
cat # This reads from standard input inherited from your script
# Output the closing
cat <<EOF
}
EOF