0
我正在嘗試在makefile中使用變量,並且似乎無法一致使用它們。如何爲makefile指定變量
下面的代碼(文件silly2.mak):
SUBS = src
SSUBS=/src2
SHELL=/bin/sh
silly5:
echo '<<<' $$SUBS '--' $$SSUBS '--' $$SHELL '>>>'
當與運行:
[email protected]:/usr/local/hsfsys$ make -f silly2.mak silly5
提供了以下的輸出:
echo '<<<' $SUBS '--' $SSUBS '--' $SHELL '>>>'
<<< -- -- /bin/bash >>>
爲什麼 'SHELL'似乎比我的其他變量更好?這是一種保留字嗎?我嘗試過移動變量順序並查看在線文檔,但仍不明白爲什麼echo會提取SHELL的值,但不能提供SUBS或SSUBS的值。
謝謝,這個工作。看起來很奇怪的是,SHELL在閱讀方面應該更強大,據我猜測,如果有疑問,我會用括號作爲安全設備 – user1245262 2012-07-08 05:10:08
@ user1245262,我認爲你仍然是誤解。 'make' * always *需要括號用於變量擴展。 '$$ SHELL'似乎起作用的原因是'SHELL'在shell中被定義,並且你逃脫了'$'所以所有的變量都被傳入了shell,所以* it *會擴展它們。由於'SUBS'和'SSUBS'不存在於shell中,因此不起作用。 – 2012-07-08 05:17:07
@CarlNorum - 謝謝。現在差異是有道理的。 – user1245262 2012-07-08 05:19:30