Perl のダイヤモンド演算子を bash でシミュレートする慣用的な方法はありますか? ダイヤモンド演算子を使用すると、
script.sh | ...
入力用に stdin を読み取り、
script.sh file1 file2 | ...
入力として file1 と file2 を読み取ります。
もう 1 つの制約は、自分のスクリプトへの入力以外の目的で script.sh の stdin を使用したいということです。以下のコードは、上記の file1 file2 ... の場合に必要なことを行いますが、標準入力で提供されるデータの場合は行いません。
command - $@ <<EOF
some_code_for_first_argument_of_command_here
EOF
私は Bash ソリューションを希望しますが、どの Unix シェルでも問題ありません。
編集:明確にするために、script.shの内容は次のとおりです。
#!/bin/bash
command - $@ <<EOF
some_code_for_first_argument_of_command_here
EOF
Perl でひし形演算子が機能するようにこれを機能させたいのですが、現在のところ、引数としてのファイル名しか処理できません。
編集2:うまくいくことは何もできません
cat XXX | command
コマンドの標準入力はユーザーのデータではないためです。コマンドの標準入力は、ヒアドキュメントの私のデータです。ユーザー データをスクリプトの stdin に入れたいのですが、スクリプト内のコマンド呼び出しの stdin にすることはできません。