2

bash ファイルでは、次のように記述できます。

my_program << EOF
Some test
More test
A lot of multi-line text
EOF

これにより、my_program 実行可能ファイルが起動され、パイプを介して 3 行 (またはそれ以上) のテキストが渡されます。

今、私は Makefile (GNU make) で同じことをしたいです。標準的な解決策は見つかりませんでした。次のように解決されます。

LaunchMyProgram:
    echo -en "Some test\\nMore test\\nA lot of multi-line text\\n" | my_program

しかし、これは非常に醜いです。もっと良い解決策はありますか?

4

1 に答える 1

2

はい、それは醜いですが、それについてできることはあまりありません。行が継続文字makeで終わっていない限り、各行を独自のシェルスクリプトとして実行します。\しかし、その後、改行は削除されます。これは少しきれいです:

all:
    printf 'hi\n\
    there\n\
    how\n\
    are\n\
    you'

通常はechoここで使用しますがprintf、エスケープ文字の処理に関してはもう少し移植性があります。

于 2013-01-16T20:35:18.460 に答える