プログラムがcook
1つのパラメータ、つまり調理する食べ物のレシピを含むテキストファイルのパス名を取るとしましょう。スクリプトからプログラムを呼び出し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
。次に、標準入力(別々のファイル記述子)を開き、読み込みます。