• ベストアンサー

シェルでData URI schemeのようなもの

シェルの引数でファイルを指定するところを、ファイルへのパスではなく、直接ファイルの中身を渡すようなことはできますか? ちょうどHTTPでいうData URI schemeのようなものです。 現在作成中のスクリプトで、データをファイルに落とさずに、直接別のプログラムに渡して、出力された結果を取得したいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

多くのUNIX系コマンドでは、ファイルの代わりに標準入出力を使える様になっているので echo 渡したい内容 | コマンド(ものによっては、標準入力から読むためにオプション指定が必要) などとパイプを使って渡すことができます。 また、同じ内容を、引数で受け取るか、ファイルから受け取るかを指定できるものもあります。 例) sed -e スクリプト sed -f ファイル名 が、opelsslのマニュアルを斜め読みしたところ、「標準入力から読める」などとは書いてありませんし、「証明書の内容を引数で受け取る」といったものもありませんでした。 -inは、無指定時は標準入力からになるようですが、それ以外はファイルを指定するしかないようです。 opensslを使う目的を考えれば、証明書等は、ファイルとかサイトなどであらかじめ検証済みのものを使うべきで、正規かどうかもわからない引数で指定すべきでない、と言えます。

inshin
質問者

お礼

ご丁寧にお調べいただき、ありがとうございます。 opensslの場合はファイルを指定するしかないということがよくわかりました。 ありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

`cat foo`

inshin
質問者

補足

説明不足ですみません。 具体的に次のようなコマンドで、各変数にファイルへのパスの代わりにファイルの内容をそのまま渡すと、そんなファイルは存在しないよ、と怒られます(>_<) `openssl smime -sign -in \"$infile\" -signer \"$signer\" -inkey \"$inkey\" -certfile \"$certfile\" -outform der -nodetach`