[英]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.