我有一个我在tcsh shell中调用的csh脚本。 csh调用Makefile。我想要硬编码或传入参数A_B_C="YYY ZZZ"
,它转到Makefile。我试图通过下面的玩具示例简化问题。
因此,如果csh脚本是run-csh
,我会调用我的tcsh shell:
run-csh -option A_B_C="YYY ZZZ"
这将在run-csh
中显示如下:
(cd foo ; $command > a.log) &
(目标test
被硬编码到run-csh
)中:
cd foo ; make test A_B_C="YYY ZZZ" D=E F=G H=J > b.log
看来问题是双引号和空格被丢弃所以它运行:
make test A_B_C=YYY ZZZ
并抱怨ZZZ不是有效的制作目标
如何在tcsh命令行(-option A_B_C="YYY ZZZ"
)上修复此参数或将其硬编码到csh脚本(A_B_C="YYY ZZZ"
)中?如果我跳过csh文件并从tcsh运行make test A_B_C="YYY ZZZ"
,那么一切正常,这就是为什么我认为双引号和空格的翻译就是问题。当我在csh脚本中使用echo时,它看起来就像我想要的那样。