【发布时间】:2010-10-18 14:53:11
【问题描述】:
有没有一种惯用的方法可以在 bash 中模拟 Perl 的菱形运算符?使用菱形算子,
script.sh | ...
读取标准输入的输入并
script.sh file1 file2 | ...
读取 file1 和 file2 的输入。
另一个限制是我想将 script.sh 中的标准输入用于我自己脚本的输入之外的其他内容。下面的代码对上面的 file1 file2 ... case 做了我想要的,但对 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
因为命令的标准输入不是用户的数据。命令的标准输入是我在 here-doc 中的数据。我希望用户数据进入我的脚本的标准输入,但它不能是我的脚本中调用命令的标准输入。
【问题讨论】:
-
使用 bash 而不是仅仅使用 Perl 有什么令人信服的理由吗?
标签: perl bash unix shell diamond-operator