ファイルが必要なコマンドに文字列を渡すにはどうすればよいですか?

ファイルが必要なコマンドに文字列を渡すにはどうすればよいですか?

プログラムがcook1つのパラメータ、つまり調理する食べ物のレシピを含むテキストファイルのパス名を取るとしましょう。スクリプトからプログラムを呼び出しbash、文字列変数にレシピを含めたとしましょう。

#!/bin/bash

the_recipe="$(cat << EOF
wash cucumbers
wash knife
slice cucumbers
EOF
)"

cook ...  # What should I do here? It expects a file, but I only have a string.

ファイル名引数が必要な場合は、コマンドにレシピをどのように渡しますか?

私はファイルを渡すために一時ファイルを作成することを検討しましたが、それに別の方法があるかどうか疑問に思いました。

ベストアンサー1

/dev/stdin標準入力を表す「偽」ファイル名を使用できます。

したがって、以下を実行してください。

echo "$the_recipe" | cook /dev/stdin

echoコマンドとパイプは、指定された変数の内容を次のコマンドの標準入力に送信しますcook。次に、標準入力(別々のファイル記述子)を開き、読み込みます。

おすすめ記事