$ msysinfo | head -3
msysinfo-1.3: Send this to the MSYS support list:
MSYS 1.0.11(0.46/3/2) 2004-04-30 18:55 i686 unknown; targ=MINGW32
$ echo '__copyright="`grep Copyright ./autogen.sh | head -1`" && echo $__copyright' >test.sh
$ cat test.sh
__copyright="`grep Copyright ./autogen.sh | head -1`" && echo $__copyright
$ sh test.sh
# Copyright 2005, 2006, 2007, 2008 by
このテストでは、autogen.shを次のような場所からコピーしました...ランダムに... http://svn.ghostscript.com/ghostscript/tags/freetype-2.3.7/autogen.sh
おそらくこれはあなたの質問がより多くの情報を必要としていることを意味します。
しかし...時々、私が厄介なシナリオに遭遇したとき、それは壊れたコードをで囲むのを助けることができます( )
。技術的にも、バックティックを回避する必要はなく" "
、使用が複雑になりますが、例は問題ないようです。
それは完全に不必要であるように思われるので、私は本当に以下を提案するのが嫌いです:
$ for item in `grep Copyright ./autogen.sh`;
do
__copyright="$__copyright $item";
done;
echo $__copyright
さらに奇妙なのは、エラーメッセージがautogen.sh自体がエラーを生成したことを示唆しているように見えることです。
$ sh test.sh
__copyright="`grep Copyright ./test.sh | head -1`" && echo $__copyright
test.shをgrep自体に変更した後、それでも機能しました。
したがって、それはシーケンスの問題のように聞こえますが、バックティックの問題ではありません。鶏が先か卵が先か。
autogen.shは独自の著作権コメントを読み込もうとしていますか?コメントをデータとして機能させる1つの方法は、コメントをヒアドキュメントでラップすることです。
_Copyright ()
{
cat <<-END_OF_TEXT
# Copyright 2012, me
END_OF_TEXT
}
_Copyright