有没有一种惯用的方法可以在bash中模拟Perl的菱形运算符?对于钻石操作者,
script.sh | ...
读取stdin作为其输入
script.sh file1 file2 | ...
读取file1和file2作为其输入。
另一个限制是,我想将script.sh中的stdin用于除输入自己的脚本之外的其他内容。下面的代码完成了我想要的file1 file2。。。上面的情况,但不适用于stdin上提供的数据。
command - $@ <<EOF
some_code_for_first_argument_of_command_here
EOF
我更喜欢Bash解决方案,但任何Unix shell都可以。
编辑:为了澄清,以下是script.sh的内容:
#!/bin/bash
command - $@ <<EOF
some_code_for_first_argument_of_command_here
EOF
我希望这能像菱形运算符在Perl中那样工作,但它现在只将文件名作为参数处理。
编辑2:我不能做任何事情
cat XXX | command
因为命令的stdin不是用户的数据。stdin for命令是我在here文档中的数据。我希望用户数据进入脚本的stdin,但它不能是脚本内命令调用的stdin。