一般的なプログラミング言語では、他に...そのようであれば...他にいるかのように制御構造を使用しては...それでGNU Makefileを使用する方法、その後、非常に珍しいことですが?
- ifeq
- ifneq
たとえば、次のようにfoo.sh
1#!/ binに/ bashの 2 3 ARCH = $(のuname - p)は 4 であれば [[$ ARCH == " x86_64版" ]]; 次いで 5 ARCH32 = " i686の" 6 ARCH64は= " x86_64の" 7 のelif [[$ ARCH == " ppc64le " ]]。その後、 8 ARCH32 = "" 9 ARCH64 = " ppc64le " 10 他 11 ARCH32 = $ ARCH 12 ARCH64 = "" 13 Fiが 14 15 であれば [[-n $ ARCH32]]。次いで 16 OUTPUT + = " ARCH32 = $ ARCH32 " 17 Fiが 18 19 であれば [[-n $ ARCH64]]。その後、 20 OUTPUT + = " ARCH64 = $ ARCH64 " 21 Fiの 22 23 エコーの$ OUTPUT
上記foo.shは、Makefileを用いて達成されます。
1 ARCH = $(シェルのuname - P) 2 3 ifeq($(ARCH)、x86_64の) 4 ARCH32 = i686の 5 ARCH64 = x86_64の 6 他ifeq($(ARCH)、ppc64le) 7 ARCH32 = 8 ARCH64 = ppc64le 9 他の 10 ARCH32 = $(ARCH) 11 ARCH64 = 12 ENDIF 13 14 ifneq($(ARCH32)) 15 OUTPUT + = ARCH32 = $(ARCH32) 16 ENDIF 17 18 ifneq($(ARCH64)) 19 OUTPUT + = ARCH64 = $(ARCH64) 20 ENDIF 21 22 全:FOO 23 FOO: 24 @echo $(OUTPUT)
次のようにFoo.sh Makefileと実行結果は以下のとおりです。
$のは、uname - P x86_64版 の$ bashのfooの。SH ARCH32 = i686のARCH64 = x86_64版 $ 作る - Makefileのfを ARCH32 = i686のARCH64 = x86_64版
このように、
- ifeq($(VAR)は、) はbashに相当する [[-z $のVAR]
- ifneq ($(VARには)、) bashのと等価である [[-n $のVAR]]