在tcsh脚本中忽略cp的“无法统计”错误(文件不存在)

时间:2015-03-19 22:42:50

标签: makefile tcsh

我有使用tcsh shell的makefile(我知道这不推荐,但这是一个要求)。如果a.txt不存在,我不希望它中断,但我希望它继续下一个命令。我该怎么做?

setup:
   cp -rf a.txt b.txt; \
   [other things that should be executed]

1 个答案:

答案 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的人(即大多数人)来说,这是更方便和熟悉的。