我有使用tcsh shell的makefile(我知道这不推荐,但这是一个要求)。如果a.txt
不存在,我不希望它中断,但我希望它继续下一个命令。我该怎么做?
setup:
cp -rf a.txt b.txt; \
[other things that should be executed]
答案 0 :(得分:2)
您可以使用以下内容:
([ -f a.txt ] && cp a.txt b.txt); ls
这将适用于C shell和Bourne shell
[ -f a.txt ]
使用test
(又名。[
)命令检查a.txt
是否存在。&&
是"和" operator,如果只执行下一个命令(cp
),如果前面的命令([
)成功。(...)
)中以将它们组合在一起,这样我们就可以添加;
并运行更多不受文件测试影响的命令。我们也可以使用C shell的内置if
,但对于不熟悉csh的人(即大多数人)来说,这是更方便和熟悉的。