たとえば、
srcdir = ../libc # Src directory
prefix = /usr/local // Installation path
最初の行はmakefileから取得され、2行目はconfig.make
.
シェルスクリプトの$srcdir
変数にアクセスする必要があります$prefix
。
` = `
私が見つけた1つの解決策は、andとdoの`=`
後のすべての部分を切り取ることでした。#
//
eval
シンプルで信頼性の高い他のソリューションはありますか?
私はここにいます#!/bin/sh
。
ベストアンサー1
シェルスクリプトで外国語を解析しようとすると絶対にできません。常に予期しない警告に直面し、すべてに適応しようとするのは悪夢になるだけです。
代わりに、ネイティブインタプリタを使用して解析し、必要なものを提供してください。
getmakevar() {
makefile="$1"
var="$2"
make getmakevar -f - <<EOI
include $makefile
getmakevar:
@echo \$($var)
EOI
}
これはPOSIXと互換性があり、すべての可能なmakefile形式を処理できます(有効なgnu makeの場合)。
# cat Makefile
bar=baz
myvar = /foo/$(bar)
# getmakevar Makefile myvar
/foo/baz