簡體   English   中英

將makefile中的env var作為可選參數傳遞

[英]Pass env var in makefile as optional

我在makefile中有一個執行bash腳本的命令:

test:
 ./script.sh

該腳本已實現getopts,因此可以這樣調用:

./script.sh -n 10

bash可以通過以下方式實現:

./script.sh ${n:+ -n\ "${n}"}

但是,當我將此構造放入makefile時,它將生成空字符串。

test:
 ./script.sh  ${n:+ -n\ "${n}"}

而且我不能簡單地使用./scipt.sh $(n)因為我需要-n前綴。

感謝您的任何建議。

$在makefile中具有特殊含義,因為它用於make變量引用

食譜命令中的${n:+ -n\\ "${n}"}部分通過make (而不是bash )擴展,這將導致一個空字符串,這就是bash接收的內容:

./script.sh  

但是,您可以在$之前加上一個$轉義 $

test:
 ./script.sh  $${n:+ -n\ "$${n}"} 

這樣, bash將接收以下命令來執行:

./script.sh  ${n:+ -n\ "${n}"} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM